Passer une variable dans un partiel, rails 3?

J’ai une boucle comme ça:

   

Puis, dans ma partie du milieu, comment puis-je accéder au message actuel?

Essaye ça:

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

Comme cela, vous aurez une post variable locale disponible dans le partiel.

Donnez-lui le partiel en tant que variable locale

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

Bien sûr, rails a également un raccourci pour le rendu des collections:

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

Dans ce cas, il appelle la publication partielle pour chaque message avec une variable locale ‘post’

Vous pouvez même créer un modèle d’espacement entre chaque message:

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

Vous pouvez maintenant accéder à post en tant que variable locale dans le post partiel

Remplacez <%= render middle %> par <%= render middle, :post => post %> . Ensuite, dans votre partie du middle , vous pouvez accéder à la variable post .