Rails将Javascript数组转换为Hash?

时间:2014-07-04 22:17:09

标签: javascript ruby-on-rails ruby

我是JS我把它发送到rails:

[{name: "Jon"}, {name: "Jane"}]

我希望Rails / Ruby将它解释为相同的结构,而是将它转换为这样的哈希:

{ "0" => {"name" => "Jon"}, "1" => {"name" => "Jane"} }

知道为什么会这样,或者如何预防?

2 个答案:

答案 0 :(得分:0)

您实际上并没有发送[{name: "Jon"}, {name: "Jane"}],而是发送"[{name: "Jon"}, {name: "Jane"}]"所以rails必须将其转换为某些内容,否则您将使用一些混乱的正则表达式来获取您想要的数据。因此rails会为您将其转换为HashWithIndifferentAccess Object。我非常怀疑你想破解rails内部,所以为什么不像rails一样解析你的代码而不是强制转换成另一种格式呢?

答案 1 :(得分:0)

这是正确的行为。如果您对将Array作为参数发送感兴趣,则必须在javascript中使用some_field_name[]类型的字段而不是简单的“field_name”。