В настоящее время я работаю над приложением rails3, которое использует jQuery. У меня есть плагин javascript, который возвращает массив данных JSON на основе выбранных пользователем настроек. У меня есть кнопка сохранения, которая читает этот массив данных из плагина java-скрипта и отправляет его обратно в приложение rails для сохранения. Кажется, что работает javascript, он делает правильный вызов ajax и отправляет данные обратно в приложение rails. Кажется, проблема в том, как rails кодирует данные, которые были возвращены обратно на сервер.
Проблема заключается во вложенных данных, которые я пытаюсь отправить обратно в приложение rails. У меня есть массив сдвигов, которые, кажется, обрабатываются как одна длинная строка, а не хэш значений, которые я ожидаю. Вот вывод данных рельсов получает.
Параметры:
{"shifts" => "[{\" start_time \ ": \" ср окт
06 2010 09:30:00 GMT + 0100
(BST) \ ", \" end_time \ ": \" ср 06 октября 2010
13:00:00 GMT + 0100
(BST) \ "\ "активный \": правда, \ "вхождение \": \ "еженедельно \", \ "company_id \": \ "1 \"}, {\ "start_time \": \" ЧГ
07 октября 2010 09:30:00 по Гринвичу + 0100
(BST) \ ", \" end_time \ ": \" Чт 07 октября 2010
13:00:00 GMT + 0100
(BST) \ "\ "активный \": правда, \ "вхождение \": \ "еженедельно \", \ "company_id \": \ "1 \"}]",
"ID" => "1"}
Я ожидал бы, что смогу использовать следующий код в моем контроллере
params[:shifts].each do |shift|
puts shift.inspect # would expect a hash of values here
end
Однако вместо хеша значений есть только одна строка. Любые предложения относительно того, почему rails не кодирует значения хешей, как вы ожидаете.