J'ai une boucle comme celle-ci:
<% @posts.each do |post| %>
<% render middle %>
<% end %>
Ensuite, dans mon partiel du milieu, comment accéder à la publication actuelle?
J'ai une boucle comme celle-ci:
<% @posts.each do |post| %>
<% render middle %>
<% end %>
Ensuite, dans mon partiel du milieu, comment accéder à la publication actuelle?
Réponses:
Essaye ça:
<% @posts.each do |post| %>
<%= render 'middle', :post => post %>
<% end %>
Comme ça, vous aurez une variable locale postdisponible dans le partiel.
<%= render 'middle', :post => post %>de rails 3.1.x
Donnez-le au partiel comme 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 appellera le post partiel pour chaque poste avec une variable locale 'post'
Vous pouvez même rendre un modèle d'espacement entre chaque article:
<%= render :partial => 'post', :collection => @posts, :spacer_template => 'post_divider' %>
<%= render :partial => 'post', :collection => @posts, as: :post %>bouclera automatiquement chacun postdans votre partiel, vous pouvez donc utiliser postdans votre partiel comme variable.
<% @posts.each do |post| %>
<% render middle, :post => post %>
<% end %>
Vous pouvez maintenant accéder à la publication en tant que variable locale postdans le partiel
Remplacez <%= render middle %>par <%= render middle, :post => post %>. Ensuite, dans votre middlepartiel, vous pouvez accéder à la postvariable.