Ich habe eine Schleife wie diese:
<% @posts.each do |post| %>
<% render middle %>
<% end %>
Wie greife ich dann in meinem mittleren Teil auf den aktuellen Beitrag zu?
Ich habe eine Schleife wie diese:
<% @posts.each do |post| %>
<% render middle %>
<% end %>
Wie greife ich dann in meinem mittleren Teil auf den aktuellen Beitrag zu?
Antworten:
Versuche dies:
<% @posts.each do |post| %>
<%= render 'middle', :post => post %>
<% end %>
Auf diese Weise post
steht im Teil eine lokale Variable zur Verfügung.
<%= render 'middle', :post => post %>
für Schienen 3.1.x
Geben Sie es dem Teil als lokale Variable
<%= render :partial => 'middle', :locals => { :post => post } %>
Natürlich hat Rails auch eine Verknüpfung zum Rendern von Sammlungen:
<%= render :partial => 'post', :collection => @posts %>
In diesem Fall wird der Teilbeitrag für jeden Beitrag mit einer lokalen Variablen 'Beitrag' aufgerufen.
Sie können sogar eine Spacer-Vorlage zwischen den einzelnen Posts rendern:
<%= render :partial => 'post', :collection => @posts, :spacer_template => 'post_divider' %>
<%= render :partial => 'post', :collection => @posts, as: :post %>
wird automatisch post
in Ihrem Teil durchlaufen , so dass Sie post
in Ihrem Teil als Variable verwenden können.
<% @posts.each do |post| %>
<% render middle, :post => post %>
<% end %>
Sie können jetzt als lokale Variable post
im Teil auf post zugreifen
Ersetzen <%= render middle %>
durch <%= render middle, :post => post %>
. Dann können Sie in Ihrem middle
Teil auf die post
Variable zugreifen .