私はそのようなループを持っています:
<% @posts.each do |post| %>
<% render middle %>
<% end %>
次に、私の中間部分で、現在の投稿にアクセスするにはどうすればよいですか?
これを試して:
<% @posts.each do |post| %>
<%= render 'middle', :post => post %>
<% end %>
このように、ローカル変数post
がパーシャル内で利用可能になります。
ローカル変数としてパーシャルに渡します
<%= render :partial => 'middle', :locals => { :post => post } %>
もちろん、Railsにはコレクションをレンダリングするためのショートカットもあります:
<%= render :partial => 'post', :collection => @posts %>
この場合、ローカル変数「post」ですべての投稿に対して部分的な投稿を呼び出します
各投稿の間にスペーサーテンプレートをレンダリングすることもできます。
<%= render :partial => 'post', :collection => @posts, :spacer_template => 'post_divider' %>
<% @posts.each do |post| %>
<% render middle, :post => post %>
<% end %>
パーシャルのローカル変数post
として投稿にアクセスできるようになりました
<%= render middle %>
を<%= render middle, :post => post %>
に置き換えます。次に、middle
パーシャルで、post
変数にアクセスできます。