我正在使用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
一个数组有类似的结果。
任何想法?