RoR: POST на страницу с использованием необработанных данных формы. Как? - PullRequest
3 голосов
/ 28 октября 2010

Существует ли метод ruby ​​для отправки данных формы POST, закодированных в «x-www-form-urlencoded», как указано здесь?http://www.w3.org/MarkUp/html-spec/html-spec_8.html

Мне известно о Net :: HTTP.post_form, но поскольку у меня есть несколько значений для публикации, которые имеют одно и то же имя, я не могу использовать хеш, который требуется для этого метода.

Чтобы уточнить, у меня есть строка вида "value1 = x & value1 = y & value1 = z & value2 = a & value3 = b", и я хочу иметь возможность отправить его на другую страницу.Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 28 октября 2010

Я думаю, что внутренне объект params является разобранной версией фактического необработанного тела сообщения в запросе http. Все данные публикации публикуются таким же образом (как необработанные данные публикации), но хэш params в ActionController уже преобразовал это в простой в использовании хэш. Если вам действительно нужны необработанные данные постов из формы, вы можете получить к ним доступ через метод raw_post самого объекта запроса.

Документация ActionController :: Request.raw_post здесь для rails3, но была доступна, по крайней мере, с 2.3.8 (единственную версию 2.3.x, которую я проверял). Я думаю, что это, скорее всего, было доступно дольше.

В контроллере попробуйте self.request.raw_post, чтобы получить необработанные данные в виде строки.

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

Можете ли вы иметь хеш-значение, которое является массивом?Я думаю, что именно так обычно обрабатываются параметры с одинаковыми именами.

...