Rails не декодирует JSON из jQuery правильно (массив становится хешем с целочисленными ключами)

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

89
задан Oxfist 2 October 2017 в 23:27
поделиться