JQuery AJAX преобразует массив объектов ruby ​​в хеш - PullRequest
2 голосов
/ 01 июля 2010

Итак, у меня есть странная проблема с jquery, делающим запись ajax с объектом ruby. У меня есть 2 варианта. 1. $ ('form_id'}. Serialize (). Я знаю, что это работает. Но моя форма просто содержит слишком много полей, и управлять ими в форме слишком неудобно 2. Второй вариант: контроллер rails строит объект ruby ​​по ходу редактирования формы. Это очень удобно, только если я могу просто вставить объект в запрос поста ajax. Видимо, я могу, с чем-то вроде этого ...

some_function() {
  $.ajax( {type: post, url: '/action', data: { 'post_data': <%= @ruby_object.to_json %> }});
}

Если вам интересно, это работает, то это так. (не знаю, как и почему) Но есть небольшая проблема. у объекта ruby ​​есть массив хешей внутри хеша, например: {[{}]} Кажется, что кто-то где-то преобразовывает этот массив в хеш с ключами, которые являются индексами этого массива. Так что в действии, если я распечатаю параметры, я получаю {{{}}}. Так может кто-нибудь сказать мне, как не получить это и вернуть точно исходную структуру объекта?

1 Ответ

0 голосов
/ 16 мая 2011

Вы делаете $ .toJSON для своего объекта JS и публикуете его в формате 'json'.И если вам интересно, как Rails преобразует данные поста в объект Ruby, отметьте actionpack-3.0.7/lib/action_dispatch/middleware/params_parser.rb

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...