Ho un ciclo come tale:Passa una variabile in un partial, rails 3?
<% @posts.each do |post| %>
<% render middle %>
<% end %>
Poi nel mio mezzo parziale, come faccio ad accedere il post corrente?
Ho un ciclo come tale:Passa una variabile in un partial, rails 3?
<% @posts.each do |post| %>
<% render middle %>
<% end %>
Poi nel mio mezzo parziale, come faccio ad accedere il post corrente?
Prova questo:
<% @posts.each do |post| %>
<%= render 'middle', :post => post %>
<% end %>
come non avrete una variabile locale post
disponibili all'interno del parziale.
Sostituire <%= render middle %>
con <%= render middle, :post => post %>
. Quindi, nel tuo parziale middle
, puoi accedere alla variabile post
.
<% @posts.each do |post| %>
<% render middle, :post => post %>
<% end %>
È ora possibile accedere posto come la variabile locale post
nel parziale
Dallo a parziale come variabile locale
<%= render :partial => 'middle', :locals => { :post => post } %>
Naturalmente, rotaie ha anche una scorciatoia per il rendering collezioni:
<%= render :partial => 'post', :collection => @posts %>
In questo caso chiamerà il par dopo ziale per ogni post con una variabile di 'post' locale
Si può anche rendere un modello di distanziale tra ogni post:
<%= render :partial => 'post', :collection => @posts, :spacer_template => 'post_divider' %>
Non conoscevo l'opzione: spacer_template, davvero bella. Grazie! –
Si noti che l'hash dei locals non è necessario quando si utilizza Rails 3. L'hash degli argomenti viene convertito in argomenti che vengono passati al partial. – superluminary
Ho ancora bisogno: hash locali per farlo funzionare .. Sto eseguendo 3.2.12 – mck
Ciao Elliot Sto usando questo su standard di ponteggi. Utilizzando inside index.html.erb per rendere _show.html.erb dove show partial contiene modal. ogni cosa funziona bene eccetto che quando premo show link, sta mostrando lo stesso id invece di mostrare id diversi. – learner