Передайте переменную в частичную, рельсы 3?

У меня такой цикл:

<% @posts.each do |post| %>
  <% render middle %>
<% end %>

Затем в моей частичной частичной части, как мне получить доступ к текущему сообщению?

Ответ 1

Попробуйте следующее:

<% @posts.each do |post| %>
  <%= render 'middle', :post => post %>
<% end %>

Подобно этому у вас будет локальная переменная post, доступная в частичном.

Ответ 2

Отдать его частичной как локальной переменной

<%= render :partial => 'middle', :locals => { :post => post } %>

Конечно, у рельсов также есть ярлык для рендеринга коллекций:

<%= render :partial => 'post', :collection => @posts %>

В этом случае он будет вызывать частичную запись для каждого сообщения с локальной переменной "post"

Вы даже можете создать шаблон разделителя между каждым сообщением:

<%= render :partial => 'post', :collection => @posts, :spacer_template => 'post_divider' %>

Ответ 3

<% @posts.each do |post| %>
  <% render middle, :post => post %>
<% end %>

Теперь вы можете получить доступ к столбцу в виде локальной переменной post в частичном

Ответ 4

Замените <%= render middle %> на <%= render middle, :post => post %>. Затем в части middle можно получить доступ к переменной post.