使用嵌套资源时获取父资源的名称

问题描述:

我有一个使用表单部分来添加注释的注释控制器。现在,此控制器嵌套在需要评论的任何父资源下。使用嵌套资源时获取父资源的名称

resource :post do 
    resource :comments 
end 
resource :poll 
    resource :comments 
end 

如果我想要一个表格部分自动配置适当的资源,我会怎么做?

现在我必须设置形式嵌套资源的页面,像这样的:

<%=的form_for [@post,@comment]做| F | %> <%= f.label:标题%>
< %= f.text_field:标题%> <%= f.label:主体%>
< %= f.text_area:机身%> <%= f.submit%> <%结束%>

我想有一个部分,看起来像上面的代码,但是,我可以只CAL l <%= render 'comments/form' %>

有关实现此目的的最佳方法的任何想法?

你可以通过一个局部变量来使用当地人部分的意见解决这个问题,哈希:

在你的嵌套的资源,可以说,这篇文章的观点:

<%= 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的详细说明解释本指南。

+0

真棒,简短甜蜜,我不重复代码。我应该考虑通过一个变量。 – 2011-06-02 19:23:23