2014-07-04 32 views
0

我我JS送这个给导轨:将JavaScript数组转换为哈希的Rails?

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

我想到的Rails/Ruby来它解释成相同的结构,而是它把它转换成一个像这样的哈希:

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

任何想法为什么会发生这种情况,或者如何预防它?

+0

在这种特殊情况下,在hash上调用'values'方法。 –

回答

0

你实际上并没有发送[{name: "Jon"}, {name: "Jane"}],你发送的是"[{name: "Jon"}, {name: "Jane"}]",所以rails必须将它转换成某种东西,否则你会用一些凌乱的正则表达式来获得你想要的数据。所以导轨将它转换为HashWithIndifferentAccess Object给你。我非常怀疑你想攻击rails内部,那么为什么不直接用rails的方式解析你的代码而不是强迫它成为另一种格式呢?

0

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

相关问题