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 poststeht 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 postin Ihrem Teil durchlaufen , so dass Sie postin Ihrem Teil als Variable verwenden können.
<% @posts.each do |post| %>
<% render middle, :post => post %>
<% end %>
Sie können jetzt als lokale Variable postim Teil auf post zugreifen
Ersetzen <%= render middle %>durch <%= render middle, :post => post %>. Dann können Sie in Ihrem middleTeil auf die postVariable zugreifen .