Pass a variable into a partial, rails 3?
Give it to the partial as a local variable
<%= render :partial => 'middle', :locals => { :post => post } %>
Of course, rails also has a shortcut for rendering collections:
<%= render :partial => 'post', :collection => @posts %>
In this case it will call the partial post for every post with a local variable 'post'
You can even render a spacer template between each post:
<%= render :partial => 'post', :collection => @posts, :spacer_template => 'post_divider' %>
Try this:
<% @posts.each do |post| %>
<%= render 'middle', :post => post %>
<% end %>
Like this you'll have a local variable post
available within the partial.
Replace <%= render middle %>
with <%= render middle, :post => post %>
. Then in your middle
partial, you can access the post
variable.
<% @posts.each do |post| %>
<% render middle, :post => post %>
<% end %>
You can now access post as the local variable post
in the partial