在Rails表单中获取变量名称参数?

时间:2013-01-04 06:11:18

标签: ruby-on-rails ruby-on-rails-3

我的表单为可变长度集合的每个成员生成一个字段,并为输入字段分配集合成员ID的ID。即,

<input type="text" id="1" val="Value for collection member with id #1">
<input type="text" id="5" val="Value for collection member with id #5">

在控制器中,我试图通过迭代这样的集合来获取这些值:

  collectors.each do |col|
    amount = params[col.id]
    # ...process this value
  end

但是我在amount = params [col.id]时得到一个零值错误。我如何访问这些变量?

编辑我刚刚更改了它,所以我使用javascript生成KV对的哈希数组并将其粘贴到隐藏字段中,以便我的控制器可以对其进行评估。它有效,但从安全角度来看,这有多糟糕?

2 个答案:

答案 0 :(得分:1)

替换

<input type="text" id="1" val="Value for collection member with id #1">
<input type="text" id="5" val="Value for collection member with id #5">

<input type="text" id="1" name="1" val="Value for collection member with id #1">
<input type="text" id="5" name="5" val="Value for collection member with id #5">

在控制器中

collectors.each do |col|
  amount = params[col.id] if params[col.id]
  # ...process this value
end

答案 1 :(得分:0)

而不是使用&#34;每个&#34;尝试:

amount = collectors.map(&:id)