Каждый раз, когда я хочу отправить массив объектов JSON с помощью jQuery в Rails, у меня есть Эта проблема. Если я структурирую массив, я вижу, что 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
, результат тот же.