2012-11-11 126 views
2

我对嵌套窗体使用https://github.com/ryanb/nested_form。嵌套表单工作正常,我现在正在寻找一种计数器,因为我想将嵌套属性存储在运行数字序列中。当使用并计数1时link_to_removeRails嵌套窗体字段计数器

一个link_to_add应该算+ 1

的嵌套部分:

<%= f.fields_for :instructions do |instruction| %> 
    <%= instruction.label :"instruction #{instruction}" %> 
    <%= instruction.text_field :instruction %> 
    <%= instruction.link_to_remove "Remove this instruction" %> 
<% end %> 
<p> 
<%= f.link_to_add "Add instruction", :instructions, class: "btn btn-small btn-primary" %> 
</p> 

我想用一个变量做一个简单的计数,但我不确定如何触发增量。我尝试添加到link_to_add,link_to_remove字段,但它会因错误而停止。如果这是一个基本问题,我还是新来的铁路和赦免我

+0

你能澄清一下你究竟是什么意思?计数显示在哪里?为什么在link_to_remove上有-1?我想起初你可以用一个有序的html列表(ol)来做,但现在我不太确定这个问题到底是什么。发送一些更多的细节,我会尝试帮助。 –

+0

@ Zeph下面的计数器答案接近我的想法,但在嵌套的属性上下文中。我的嵌套属性被称为指令,当我添加指令时,我想显示指令1,指令2,指令3等,当我删除它们时计数应该减少。这个计数也将被保存到记录中。 –

+0

你应该看看使用jQuery来做那样的事情。如果您将此问题(减去ruby/rails部分)发布到JavaScript部分,我相信您会得到您要查找的内容。 –

回答

1

如果你需要一个序列,你可以使用序列化宝石e.g或有一个sequence_no字段。如果你需要的只是一个计数器并且不关心订单(或者已经在控制器/模型中订购),尽管我只想在'展示'中这样做... ...

<% just_a_counter = 0 %> #creates counter and sets to 0 
<%= f.fields_for :instructions do |instruction| %> 
    <% just_a_counter += 1 %> #increments counter 
    S/No : <%= just_a_counter %> #displays 
    #your other code 
<% end %>