1

Ruby on Railsは初めてです。

ビュー/イベントには、次のコードによって「new.html.erb」にレンダリングされる「_form.html.erb」があります。

<%= render "form" %>

今度は、同じフォルダー (views/events) にある "index.html.erb" 内の "_form.html.erb" をレンダリングしたいと考えています。しかし、「テンプレートがありません」というエラーが表示されます。

コントローラーに何かを追加する必要があると思います。ビューの他のページでフォームをレンダリングするのを手伝ってください...

4

2 に答える 2

0

「通常」は、インデックス アクションでフォームをレンダリングしません。ほとんどのフォーム パーシャルは意味的に を期待するように設定され@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 } %>
于 2013-02-04T01:29:24.823 に答える
0

あなたが試すことができます

<%= render "events/form" %>

以前にこの問題があり、これで解決しました

于 2012-07-22T19:35:05.187 に答える