Mam taką pętlę:
<% @posts.each do |post| %>
<% render middle %>
<% end %>
Następnie w środkowej części, jak uzyskać dostęp do bieżącego postu?
Mam taką pętlę:
<% @posts.each do |post| %>
<% render middle %>
<% end %>
Następnie w środkowej części, jak uzyskać dostęp do bieżącego postu?
Odpowiedzi:
Spróbuj tego:
<% @posts.each do |post| %>
<%= render 'middle', :post => post %>
<% end %>
W ten sposób będziesz mieć lokalną zmienną post
dostępną w części.
<%= render 'middle', :post => post %>
szyn 3.1.x
Daj to częściowej jako zmienną lokalną
<%= render :partial => 'middle', :locals => { :post => post } %>
Oczywiście rails ma również skrót do renderowania kolekcji:
<%= render :partial => 'post', :collection => @posts %>
W tym przypadku wywoła częściowy post dla każdego posta z lokalną zmienną „post”
Możesz nawet renderować szablon odstępnika między poszczególnymi postami:
<%= render :partial => 'post', :collection => @posts, :spacer_template => 'post_divider' %>
<%= render :partial => 'post', :collection => @posts, as: :post %>
automatycznie przejdzie przez każdy post
z twoich podrzędnych, więc możesz użyć ich post
jako zmiennej.
<% @posts.each do |post| %>
<% render middle, :post => post %>
<% end %>
Możesz teraz uzyskać dostęp do wpisu jako zmiennej lokalnej post
w części
Wymień <%= render middle %>
się <%= render middle, :post => post %>
. Następnie w middle
części możesz uzyskać dostęp do post
zmiennej.