Rails сериализует формы в формате, не похожем на то, что вы предлагаете. Если у вас есть вложенная модель, она кодирует ее следующим образом:
name=theo&company[name]=acme
(эквивалент JSON будет {"name": "theo", "company": {"name": "acme"}}
)
Я не могу сказать, что видел, как приложение Rails отправляло массивы, но нет никаких причин, почему оно не будет работать (в худшем случае вы получите хеш со строковыми ключами).
PHP имеет другое соглашение, если вы хотите отправить массив, который вы делаете
names[]=alice&names[]=bob&names[]=steve
Но я не знаю, как вы делаете вложенные объекты таким образом.
Спецификация HTTP, или, если это спецификация URI, не уверенная, какой atm, на самом деле указывает, что, если вы передаете один и тот же аргумент несколько раз, вы получаете массив значений (вместо поведения последних побед большинства структур приложений). Это можно увидеть в документации API для Jetty, например: http://api.dpml.net/org/mortbay/jetty/6.1.5/org/mortbay/jetty/Request.html#getParameterValues(java.lang.String)
Однако большая часть этого относится к GET
запросам, необязательно POST
(но, возможно, application/x-url-encoded
должен соответствовать тем же стандартам, что и GET
).
Короче говоря, я не думаю, что для этого существует стандарт , тела POST
- это что-то вроде территории дикого запада. Однако я думаю, что либо вы должны использовать JSON, потому что он создан для описания структур, а application/x-url-encoded
нет, либо вам следует попытаться лучше представить структуру ваших данных, например:
users[0][name]=foo&users[0][age]=20&users[1][name]=bar&users[1][age]=10
У этого есть некоторый шанс, что он будет интерпретирован, например, приложением Rails из коробки.