Ho un ciclo come questo:
<% @posts.each do |post| %>
<% render middle %>
<% end %>
Quindi, nel mio parziale centrale, come posso accedere al post corrente?
Ho un ciclo come questo:
<% @posts.each do |post| %>
<% render middle %>
<% end %>
Quindi, nel mio parziale centrale, come posso accedere al post corrente?
Risposte:
Prova questo:
<% @posts.each do |post| %>
<%= render 'middle', :post => post %>
<% end %>
In questo modo avrai una variabile locale post
disponibile all'interno del parziale.
<%= render 'middle', :post => post %>
delle rotaie 3.1.x
Dallo al parziale come variabile locale
<%= render :partial => 'middle', :locals => { :post => post } %>
Naturalmente, rails ha anche un collegamento per il rendering delle raccolte:
<%= render :partial => 'post', :collection => @posts %>
In questo caso chiamerà il post parziale per ogni post con una variabile locale 'post'
Puoi persino eseguire il rendering di un modello spaziatore tra ogni post:
<%= render :partial => 'post', :collection => @posts, :spacer_template => 'post_divider' %>
<%= render :partial => 'post', :collection => @posts, as: :post %>
eseguirà automaticamente il ciclo di ciascuno post
nel tuo parziale, in modo da poterlo utilizzare post
come parziale.
<% @posts.each do |post| %>
<% render middle, :post => post %>
<% end %>
Ora puoi accedere a post come variabile locale post
nel parziale
Sostituisci <%= render middle %>
con <%= render middle, :post => post %>
. Quindi, nel tuo middle
parziale, puoi accedere alla post
variabile.