Rails将Javascript数组转换为哈希?

Rails将Javascript数组转换为哈希?,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我将其发送到rails: [{name:“Jon”},{name:“Jane”}] 我希望Rails/Ruby将其解释为相同的结构,但它会将其转换为如下哈希: {“0”=>{“name”=>“Jon”},“1”=>{“name”=>“Jane”}} 你知道为什么会发生这种情况,或者如何防止它吗?你实际上并没有发送[{name:“Jon”},{name:“Jane”}],你发送的是“[{name:“Jon”},{name:“Jane”}”,所以rails必须将其转换成某种东西,否则你会做一些混乱的

我将其发送到rails:

[{name:“Jon”},{name:“Jane”}]

我希望Rails/Ruby将其解释为相同的结构,但它会将其转换为如下哈希:

{“0”=>{“name”=>“Jon”},“1”=>{“name”=>“Jane”}}


你知道为什么会发生这种情况,或者如何防止它吗?

你实际上并没有发送
[{name:“Jon”},{name:“Jane”}]
,你发送的是
“[{name:“Jon”},{name:“Jane”}”
,所以rails必须将其转换成某种东西,否则你会做一些混乱的正则表达式来获取你想要的数据。所以rails将它转换为一个适合您的。我非常怀疑您是否想要破解rails的内部结构,那么为什么不按照rails呈现的方式解析代码,而不是将其强制转换为另一种格式呢

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

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