1

ビューに多くのパーシャルをレンダリングするループがあります。各パーシャルは、レコードに対して保存/保存解除操作を実行するための単純なトグルです。各パーシャルは、javascriptを使用してブールフィールドを切り替えてから、それ自体を更新し、コントローラーは次のように言って終了します。

$ controller
render :partial => "save_unsave_buttons", :locals => {:matching => @matching}, :layout => false

# view    
<div id=<%= "save#{match.id}" -%>>
<%= render :partial => "save_unsave_buttons", :locals => {:matching => match} %>
</div>

コントローラがsave_unsave_buttonsを部分的にレンダリングする場合、正しいdivにレンダリングされません。見つかった最初のレコードのパーシャルを更新するだけです。コントローラーにsave_unsave_buttonsを正しいIDのdivに部分的にレンダリングするように依頼するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

0

問題に対して提供した小さな情報だけを見ると、コードの原因はdivタグだと思います。

タグはdivパーシャル内にある必要があります。

編集:あなたのコードが行うことは、dividを持つシングルを作成save(the first match.id)し、その中にパーシャルをレンダリングすることです。私があなたを正しく理解したなら、あなたはdivそれぞれのために必要matchです。そのためには、divそれ自体がパーシャル内にある必要があります。

したがって、match.idをの部分に渡しcollectionます。あなたの見解は次のようになります。

# view    

<%= render :partial => "save_unsave_buttons", :locals => {:matching => match, :collection => {@match_id => match.id} } %>

そしてあなたの部分的な_sav_unsave_buttons.html.erbで:

<% content_tag :div, id => "save#{@match_id}" do %>

     #YOUR CODE GOES HERE!

<% end -%>
于 2010-06-19T04:23:26.003 に答える