我是 ruby on rails 的新手。
在视图/事件中,我有“_form.html.erb”,它通过以下代码呈现在“new.html.erb”中:
<%= render "form" %>
现在我想在同一文件夹(视图/事件)中的“index.html.erb”中呈现“_form.html.erb”。但我收到错误“缺少模板”。
我想我必须在控制器中添加一些东西,请帮助我在其他视图页面中呈现表单...
我是 ruby on rails 的新手。
在视图/事件中,我有“_form.html.erb”,它通过以下代码呈现在“new.html.erb”中:
<%= render "form" %>
现在我想在同一文件夹(视图/事件)中的“index.html.erb”中呈现“_form.html.erb”。但我收到错误“缺少模板”。
我想我必须在控制器中添加一些东西,请帮助我在其他视图页面中呈现表单...
你可以试试
<%= render "events/form" %>
我之前遇到过这个问题,现在解决了
您“通常”不会在索引操作中呈现表单。大多数表单部分都在语义上设置为期望 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 } %>