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 post
disponible 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 post
dans votre partiel, vous pouvez donc utiliser post
dans 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 post
dans le partiel
Remplacez <%= render middle %>
par <%= render middle, :post => post %>
. Ensuite, dans votre middle
partiel, vous pouvez accéder à la post
variable.