将一个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
部分,你可以访问post
variables。