0

変更するたびに自動的に更新したい属性がありますweight.subtotal(モデルの before_save コールバックで更新されます)。

pjax を見ましたが、重すぎるようです。私がやりたいのは、それが変更されたら、これを持っているものだけtdですdiv:

<td><%= weight.subtotal %></td>

ページのリロードなしで自動的に更新されます。

ありがとう。

編集 1:できれば「best-in-place」のような宝石ですが、値の更新をユーザーに依存するのではなく、値が変更されたかどうかをリッスンし、変更された場合は、ページ上のその値だけを更新します.

4

1 に答える 1

1

宝石を思い付くことができなかったので、すべてゼロから、現在の値を返すメソッドが必要です。

/weights/get_subtotal/:id.:format

jqueryで簡単に解釈できるように、jsonで吐き出すことをお勧めします。

次に、jquery を使用してそのメソッドをポーリングし、変更されている場合は、ビューの値を変更します。

function poll(){
    setTimeout(function(){
        $.ajax({ url: "/weights/get_subtotal/xx", success: function(data){

            //put code here to compare old td value 
            //with current value, and replace if different

            //Setup the next poll recursively
            poll();
        }, dataType: "xxxxx"});
    }, 10000);
};
$(document).ready(function(){
    poll();
});

td の id に重みの id を入れれば簡単です。

<td id="weigth_<%= weight.id%>"><%= weight.subtotal %></td> 

それが役に立てば幸い。

于 2012-10-09T02:56:27.820 に答える