use*_*111 3 javascript ruby ruby-on-rails
我正在使用JavaScript将用户输入转换为一个看起来像哈希数组的String,并将其传递给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}]">
Run Code Online (Sandbox Code Playgroud)
我正在使用eval(params[:UserHash])
它将它变成一个我可以使用的哈希.我是否完全通过使用来破坏安全性eval()
,如果是这样,有没有办法可以检查传递的字符串是否为哈希数组?关于我正在做的任何意见将不胜感激.我使用JS传递哈希数组的原因是因为我的表单收集了有关可变长度集合(一组付款人的变量)的数据.
您最好的选择是使用JSON.
这正是JSON设计的场景.在Javascript中创建一个JSON字符串,并在Ruby中解析它
require 'json'
string = '[{"payer_id":1,"amt":90.0},{"payer_id":2,"amt":80.0},{"payer_id":4,"amt":20.0}]'
data = JSON.parse(string)
Run Code Online (Sandbox Code Playgroud)
它会将你的字符串变成一个哈希数组.
注意,如果您希望键是符号,请使用
data = JSON.parse(string,:symbolize_names=>true)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2002 次 |
最近记录: |