我有一个评论控制器,它使用表单部分来添加评论。现在,此控制器嵌套在需要注释的任何父资源下。
resource :post do
resource :comments
end
resource :poll
resource :comments
end
如果我想要一个自动为正确资源配置的表单部分,我该怎么做?
现在我必须在嵌套资源的页面上设置表单,如下所示:
<%= form_for [@ post,@ comment] do | f | %GT;
<%= f.label:title%>
<%= f.text_field:title%>
<%= f.label:body%>
<%= f.text_area:body%>
<%= f.submit%>
<%end%>
我想有一个看起来像上面的代码,但我可以调用<%= render 'comments/form' %>
关于实现这一目标的最佳方法的任何想法?
答案 0 :(得分:1)
您可以使用locals hash将局部变量传递给comments partial来解决此问题:
在您的嵌套资源中,让我们说帖子的视图:
<%= render 'comments/form', :locals => {:resource => @post} %>
您的意见表:
<%= form_for [resource, @comment] do |f| %>
<%= f.label :title %>
<%= f.text_field :title %> <%= f.label :body %>
<%= f.text_area :body %> <%= f.submit %>
<% end %>
另外,我建议您在详细说明的partials上查看本指南。