1

我是 ruby​​ on rails 的新手。

在视图/事件中,我有“_form.html.erb”,它通过以下代码呈现在“new.html.erb”中:

<%= render "form" %>

现在我想在同一文件夹(视图/事件)中的“index.html.erb”中呈现“_form.html.erb”。但我收到错误“缺少模板”。

我想我必须在控制器中添加一些东西,请帮助我在其他视图页面中呈现表单...

4

2 回答 2

0

你可以试试

<%= render "events/form" %>

我之前遇到过这个问题,现在解决了

于 2012-07-22T19:35:05.187 回答
0

您“通常”不会在索引操作中呈现表单。大多数表单部分都在语义上设置为期望 a @my_resource,但是如果您以 rails 方式进行所有操作,则在索引操作期间将不会有实例变量。有很多方法可以做到这一点,但这可能是最快的。

您的索引操作中可能有一些收藏(假设您正在使用书籍):

#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 :partial => "form", :locals => {:book => book } %>
于 2013-02-04T01:29:24.823 回答