Локальная переменная всегда ноль при попытке сделать частичное - PullRequest
9 голосов
/ 17 января 2011

Я получаю действительно странную проблему с частичным при попытке рендеринга коллекции, я даже пробовал разные подходы.

Вот мой частичный код (для отладки):

<code><pre><%= item.inspect -%>

А вот мои попытки его использовать:

<%= render 'item', :collection => @foo.items %>
<%= render 'item', :collection => @foo.items, :as => :item %>

<% @foo.items.each do |item| %>
    <%= render 'item', :locals => {:item => item} %>
    <%= render 'item', :object => item %>
<% end %>

В каждом из этих сценариев частичное просто выводит ноль, однако, если я вставлю item.inspect в каждый мой цикл, детали объекта будут отображаться, как и ожидалось.

Единственное, что я думал, что это может быть проблемой, это то, что ассоциация items - это короткое имя, сопоставленное с другим классом, поэтому я подумал, что автоматическая вещь Rails 3 может назначать его переменной, соответствующей имени этого класса Однако, если я пытаюсь вывести, я получаю «неопределенную локальную переменную ошибку».

Надеюсь, я что-то упустил из виду.

1 Ответ

10 голосов
/ 17 января 2011

Вы уже пробовали это? -

<% @foo.items.each do |item| %>
    <%= render 'item', :item => item %>
<% end %>

Обновление

Вот предположение для коллекции:

<%= render :partial => 'item', :collection => @foo.items, :as => :item  %>
...