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