web-dev-qa-db-ja.com

変数をパーシャルRails 3に渡しますか?

私はそのようなループを持っています:

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

次に、私の中間部分で、現在の投稿にアクセスするにはどうすればよいですか?

139
Elliot

これを試して:

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

このように、ローカル変数postがパーシャル内で利用可能になります。

236
polarblau

ローカル変数としてパーシャルに渡します

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

もちろん、Railsにはコレクションをレンダリングするためのショートカットもあります:

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

この場合、ローカル変数「post」ですべての投稿に対して部分的な投稿を呼び出します

各投稿の間にスペーサーテンプレートをレンダリングすることもできます。

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

パーシャルのローカル変数postとして投稿にアクセスできるようになりました

14
Felix Andersen

<%= render middle %><%= render middle, :post => post %>に置き換えます。次に、middleパーシャルで、post変数にアクセスできます。

10
sevenseacat