每次我想用jQuery將Rails的JSON對象數組發送到Rails時,我遇到了這個問題。 如果我字符串化數組我可以看到,jQuery是做正確的工作:Rails無法正確解碼json的JSON(數組成爲整數鍵的散列)
"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
,結果相同。
謝謝! – jwarzech
這個答案優於所選的答案。讓我們把它放到頂端! –
接受這一點,因爲這是什麼Rails真的需要與JSON正常工作。 如果您使用RSpec/Cucumber測試JSON Rails API,則必須採取類似的措施。 RSpec:設置'@ request.env ['HTTP_ACCEPT'] =「application/json」'。黃瓜:在標頭中傳遞''HTTP_ACCEPT'=>'application/json''。 – aledalgrande