我正在使用attribute_fu爲特定表格渲染一行很好的塊。如何跟蹤多次調用渲染的信息:部分
<%= f.render_associated_form(@foo.bars, :new => 5) %>
我想有bar
部分有一些狀態的概念。 (因爲這個概念是特定於視圖的,所以我不希望將其外部化到Bar
模型本身並在控制器中計算它。)爲簡單起見,假設它是@foo.bars
列表中bar
的索引。我知道,如果是這種情況,我可以使用: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
得到適當的通過,但調用[]拋出「呃哦,你只是調用一個方法爲零」。對我來說令人驚訝的是,我可以做tmp.inspect,tmp.class等來查看哈希,並且這些都有我期望的結果。但是tmp [:index]或tmp [:anything_I_want]導致它爆炸。
製作tmp
一個數組有類似的結果。
任何想法?