У меня такой цикл:
<% @posts.each do |post| %>
<% render middle %>
<% end %>
Затем в моей частичной частичной части, как мне получить доступ к текущему сообщению?
Попробуйте следующее:
<% @posts.each do |post| %>
<%= render 'middle', :post => post %>
<% end %>
Подобно этому у вас будет локальная переменная post
, доступная в частичном.
Отдать его частичной как локальной переменной
<%= render :partial => 'middle', :locals => { :post => post } %>
Конечно, у рельсов также есть ярлык для рендеринга коллекций:
<%= render :partial => 'post', :collection => @posts %>
В этом случае он будет вызывать частичную запись для каждого сообщения с локальной переменной "post"
Вы даже можете создать шаблон разделителя между каждым сообщением:
<%= render :partial => 'post', :collection => @posts, :spacer_template => 'post_divider' %>
<% @posts.each do |post| %>
<% render middle, :post => post %>
<% end %>
Теперь вы можете получить доступ к столбцу в виде локальной переменной post
в частичном
Замените <%= render middle %>
на <%= render middle, :post => post %>
. Затем в части middle
можно получить доступ к переменной post
.