每次我想用 jQuery to Rails 发布一个 JSON 对象数组时,都会遇到这个问题。 如果我对数组进行字符串化,我可以看到 jQuery 正在正确地完成它的工作:
"shared_items"=>"[{\"entity_id\":\"253\",\"position\":1},{\"entity_id\":\"823\",\"position\":2}]"
但是如果我只是把数组作为 AJAX 调用的数据发送出去:
"shared_items"=>{"0"=>{"entity_id"=>"253", "position"=>"1"}, "1"=>{"entity_id"=>"823", "position"=>"2"}}
然而,如果我只发送一个普通数组,它就可以工作:
"shared_items"=>["entity_253"]
为什么 Rails 将数组更改为那个奇怪的散列?我想到的唯一原因是 Rails 无法正确理解内容,因为这里没有类型(有没有办法在 jQuery 调用中设置它?):
Processing by SharedListsController#create as
谢谢!
更新:
我将数据作为数组而不是字符串发送,数组是使用 .push()
函数动态创建的。用 $.post
和 $.ajax
试过了,结果相同。