Pass a variable into a partial, rails 3?

前端 未结 4 2045
小蘑菇
小蘑菇 2020-11-29 16:49

I have a loop like such:

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

Then in my middle partial, how do I

相关标签:
4条回答
  • 2020-11-29 16:54
    <% @posts.each do |post| %>
      <% render middle, :post => post %>
    <% end %>
    

    You can now access post as the local variable post in the partial

    0 讨论(0)
  • 2020-11-29 17:09

    Replace <%= render middle %> with <%= render middle, :post => post %>. Then in your middle partial, you can access the post variable.

    0 讨论(0)
  • 2020-11-29 17:13

    Try this:

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

    Like this you'll have a local variable post available within the partial.

    0 讨论(0)
  • 2020-11-29 17:19

    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' %>
    
    0 讨论(0)
提交回复
热议问题