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