我正在使用 JavaScript 将用户输入转换为看起来像哈希数组的字符串,并将其传递给 Rails 表单中的隐藏字段。即这样的东西被传递给我的控制器:
<input id="UserHash" name="UserHash" type="hidden" value="[{ :payer_id => 1, :amt => 90.00}, { :payer_id => 2, :amt => 80.00}, { :payer_id => 4, :amt => 20.00}]">
我eval(params[:UserHash])
用来把它变成我可以使用的哈希。我是否通过使用完全损害了安全性eval()
,如果是这样,有没有办法可以检查传递的字符串是否是一个哈希数组?任何关于我正在做的事情的意见将不胜感激。我使用 JS 传递哈希数组的原因是因为我的表单收集有关可变长度集合(一组可变付款人)的数据。