2013-05-13 6 views
1

Я вижу странную проблему в Rails.JSON Parsing issue in Rails

Тело запроса (request.body):

renewals[][driver_1][dl_number]=123& 
renewals[][driver_1][expiration_date]=20130513& 
renewals[][driver_1][last_name]=123& 
renewals[][driver_1][state]=AL& 
renewals[][driver_1][verified]=1& 
renewals[][driver_2][verified]=0& 
renewals[][id]=6415& 
renewals[][insurance][expiration_date]=20130513& 
renewals[][insurance][naic]=123& 
renewals[][insurance][policy_number]=123& 
renewals[][insurance][verified]=1& 
renewals[][mailing_address][address_has_changed]=0& 
renewals[][mailing_address][city]=GULF%20SHORES& 
renewals[][mailing_address][state]=AL& 
renewals[][mailing_address][street_address]=8094%20BEACH%20LANE& 
renewals[][mailing_address][zip]=35023& 
renewals[][driver_1][dl_number]=123& 
renewals[][driver_1][last_name]=123& 
renewals[][driver_1][state]=AL& 
renewals[][driver_1][verified]=1& 
renewals[][driver_2][verified]=0& 
renewals[][id]=6412& 
renewals[][insurance][expiration_date]=20130513& 
renewals[][insurance][naic]=123& 
renewals[][insurance][policy_number]=123& 
renewals[][insurance][verified]=1& 
renewals[][mailing_address][address_has_changed]=0& 
renewals[][mailing_address][city]=HUEYTOWN& 
renewals[][mailing_address][state]=AL& 
renewals[][mailing_address][street_address]=123%20ANY%20LANE& 
renewals[][mailing_address][zip]=35023& 
renewals[][driver_1][dl_number]=123& 
renewals[][driver_1][last_name]=123& 
renewals[][driver_1][state]=AL& 
renewals[][driver_1][verified]=1& 
renewals[][driver_2][verified]=0& 
renewals[][id]=6411& 
renewals[][insurance][expiration_date]=20130513& 
renewals[][insurance][naic]=123& 
renewals[][insurance][policy_number]=123& 
renewals[][insurance][verified]=1& 
renewals[][mailing_address][address_has_changed]=0& 
renewals[][mailing_address][city]=HUEYTOWN& 
renewals[][mailing_address][state]=AL& 
renewals[][mailing_address][street_address]=104%20MERRIMONT%20ROAD& 
renewals[][mailing_address][zip]=35023& 

JSON Parsed Params (PARAMS [: продлений]): https://gist.github.com/t2/5566652

Уведомление в формате JSON, что информация driver_1 отсутствует на последней записи. Не знаю, почему это так. Данные находятся в запросе. Любая известная ошибка, которой я не хватает? Дайте мне знать, если вам нужна дополнительная информация.

ответ

0

К сожалению, это как раз то, как Rails анализирует JSON как это (где ваш [] массово вложен). Я столкнулся с этим раньше - http://guides.rubyonrails.org/form_helpers.html#combining-them дал некоторое объяснение.

Из того, что я помню, если вы можете поместить в цифровых клавиш, а не только [] (т.е. [1] для первого, [2] для второго и т.д.), то он будет работать, как вы хотите.

+0

Я боялся этого. Не совсем возможно при публикации из приложения iOS, которое я могу увидеть. Я продолжу копать. – Trent

0

Итак, я понял. Мне нужно было установить requestSerializationMIMEType на RKMIMETypeJSON.

+0

Прохладный - это заставило его работать, как вы хотели? Как выглядели параметры? – RobHeaton

+0

Конечно. Ваш ответ был верным в том случае, если я продолжаю использовать RestKit 'RKMIMETypeFormURLEncoded'. При переключении на «RKMIMETypeJSON» все объекты остаются нетронутыми и данные запроса правильно отформатированы. Это было очень очевидно при проверке запроса с [Чарльзом] (http://www.charlesproxy.com). – Trent