将一个variables传递给partial,rails 3?

我有这样一个循环:

<% @posts.each do |post| %> <% render middle %> <% end %> 

那么在我的中间部分,我如何访问当前的post?

尝试这个:

 <% @posts.each do |post| %> <%= render 'middle', :post => post %> <% end %> 

像这样,你将有一个局部variables可用的部分。

把它作为局部variables赋予局部

 <%= render :partial => 'middle', :locals => { :post => post } %> 

当然,rails还有一个渲染集合的捷径:

 <%= render :partial => 'post', :collection => @posts %> 

在这种情况下,它会调用每个职位的局部职位与一个局部variables“职位”

您甚至可以在每个post之间呈现间隔模板:

 <%= render :partial => 'post', :collection => @posts, :spacer_template => 'post_divider' %> 
 <% @posts.each do |post| %> <% render middle, :post => post %> <% end %> 

您现在可以以部分中的本地variablespost访问post

<%= render middle %>replace为<%= render middle, :post => post %> 。 然后在你的middle部分,你可以访问postvariables。