Повторное использование парсинга в Rails для превращения одномерного хеша в многозначный на основе значений ключа и записи массива - PullRequest
1 голос
/ 28 августа 2010

В настоящее время я использую rturk , который возвращает мне мои ответы в одномерном хеше как таковом ...

{"answers[125][rating]"=>"5", "answers[126][rating]"=>"5", "commit"=>"Take Survey", "answers[125][rating]"=>"5", "authenticity_token"=>"je0Hx48qKmCzy1zmXCpijYWbl4w92eDMRajWJcVYxe0=", "gender"=>"m", "answers[120][rating]"=>"5", "answers[121][rating]"=>"5", "income"=>"$75,000 to $100,000", "answers[122][rating]"=>"5", "date[year]"=>"1992", "career"=>"Marketer", "answers[123][rating]"=>"5", "answers[124][rating]"=>"5"}

Что я хотел бы сделать, это разобрать их вмногомерный хеш, который я могу затем передать как атрибуты.Если бы я мог понять это, я бы, вероятно, переключился бы с form_tag обратно на рельсы, стоящие формы объектов.

Ответы [ 2 ]

0 голосов
/ 19 октября 2010

Посмотрите на самоцвет Turkee (http://github.com/aantix/turkee), так как он сделает это сопоставление объектов для вас.

0 голосов
/ 29 августа 2010

Да, Rack :: Utils.parse_nested_query может помочь вам, но вам нужно преобразовать хеш в строку:

h = {"answers[125][rating]"=>"5", ...} # your hash
s = h.to_a.collect { |a| a.join('=') }.join('&')
Rack::Utils.parse_nested_query(s)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...