0

私はこれに対する解決策を見つけるのにいくつかの問題を抱えています。基本的に、モデルの特定のサブグループに対して部分的にレンダリングされている本体の各ループにルビーが埋め込まれています。例えば:

<li id="thing">
  <% items.each do |i| %>
    <%= render :partial => 'item', :locals => {:i => i} %>
  <% end %>
</li>

jQuery、AJAX、またはレールだけで(それぞれに実装可能なソ​​リューションがあると確信しており、それらすべてに興味があります)、アイテムのリストを更新する方法があるかどうか疑問に思いました。これを実行できるようにしたい理由は、現在、ページ(フォーム)をリロードせずに、現在の「アイテム」を作成したり、既存の「アイテム」を更新したりできる機能を実装したためです。どちらの場合もボタンクリックで特定のコンテナに表示されます)、リストの送信時に、新しい情報または新しい「アイテム」で自動的に更新されるようにしたいと思います。リスト全体を更新してみるのがより良いアプローチでしょうか?または、新しく作成/更新されたオブジェクトを(パーシャルとして)パーシャルのリストにクライアントサイドで追加する方法はありますか?

次のステートメントを試しましたが、レンダリング時に「未定義のメソッド」エラーが発生するのを避けられないようです。

$("#activeTab").append("<%= escape_javascript(render :partial => 'item', :locals => {:i => Item.order(:created_at).last}) %>");

ページが移動して戻ってくると、リストが再度読み込まれるため、これは良い解決策になると思いました。これは、ページを表示しているときに静的リストに追加するためのものです。

4

1 に答える 1

0

この新しいアイテムを送信するために使用しているものをすべて取得し(私はsubmit_buttonと呼びます)、jqueryを使用してページをリロードします。

$('#submit_button')。click(function(){

          location.reload();

});

form_forに追加:remote => true

于 2013-03-23T17:37:59.343 に答える