「通常」は、インデックス アクションでフォームをレンダリングしません。ほとんどのフォーム パーシャルは意味的に を期待するように設定され@my_resource
ていますが、レールのようにすべてを実行している場合、インデックス アクション中にインスタンス変数を使用することはありません。これを行うにはいくつかの方法がありますが、おそらくこれが最も高速です。
index アクションには、おそらくいくつかのコレクションがあります (本を使用しているふりをしましょう)。
#views/books/index.html.erb
<% @books.each do |book| %>
...
<%= render "form" %>
...
<% end %>
フォームをレンダリングする前に、どこかにインスタンス変数を設定することができます:
#views/books/index.html.erb
<% @books.each do |book| %>
<% @book = book %>
...
<%= render "form" %>
...
<% end %>
それを行う別の方法は、一部のローカルをパーシャルに渡すことです。_form
代わりにローカル変数を使用するには、すべての参照を変更する必要があります。次に、次のように render を呼び出すことができます。
<%= render :partial => "form", :locals => {:book => book } %>