Я использую attribute_fu для визуализации красивого блока строк для конкретной таблицы.
<%= f.render_associated_form(@foo.bars, :new => 5) %>
Я бы хотел, чтобы частичное bar
имело некоторое представление о состоянии. (Поскольку это понятие относится только к представлению, я не хочу выводить его на саму модель Bar
и вычислять его в контроллере.) Для простоты представьте, что это индекс bar
в * 1007. * список.
(Мне известно, что в этом случае я мог бы использовать: collection => @ foo.bars для включения bar_counter ... это не работает в моих тестах, но я видел документы для этого.)
Мой вопрос - как передать переменную в частичную, чтобы я мог сохранять и редактировать состояние? Наивно я предполагал, что занимаюсь чем-то вроде
<% @tmp = {:index => 1} %>
%= f.render_associated_form(@foo.bars, :new => 5, :locals => {:tmp => @tmp}) %>
#goes in the view
<%= tmp[:index] += 1 %>
будет работать. tmp
передается соответствующим образом, но вызов [] выдает «О, вы только что вызвали метод для nil». Удивительно для меня, я могу сделать tmp.inspect, tmp.class и т. Д., Чтобы посмотреть на Hash, и у них есть ожидаемые результаты. Но tmp [: index] или tmp [: everything_I_want] вызывают его взрыв.
Создание tmp
массива дало аналогичные результаты.
Есть идеи?