Answers:
试试这个:
<% @posts.each do |post| %>
<%= render 'middle', :post => post %>
<% end %>
这样,您将在局部对象中有一个局部变量post
。
<%= render 'middle', :post => post %>
使用Rails 3.1.x
将其作为局部变量
<%= render :partial => 'middle', :locals => { :post => post } %>
当然,rails也具有渲染集合的快捷方式:
<%= render :partial => 'post', :collection => @posts %>
在这种情况下,它将为每个带有局部变量“ post”的帖子调用部分帖子
您甚至可以在每个帖子之间渲染间隔模板:
<%= render :partial => 'post', :collection => @posts, :spacer_template => 'post_divider' %>
<%= render :partial => 'post', :collection => @posts, as: :post %>
将自动遍历您的局部变量中的每个变量post
,因此您可以post
在局部变量中使用它作为变量。
替换<%= render middle %>
为<%= render middle, :post => post %>
。然后在您的middle
局部视图中,可以访问post
变量。