0

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

<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] 处得到一个 nil 值错误。如何访问这些变量?

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

4

2 回答 2

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
于 2013-01-04T06:17:06.247 回答
0

而不是使用“每个”尝试:

amount = collectors.map(&:id)
于 2013-01-04T07:20:36.130 回答