Имитация публикации формы с массивами вложенных ресурсов с помощью curl - PullRequest
4 голосов
/ 14 февраля 2011

Как использовать curl для создания http-записи в форме с вложенными атрибутами, используя application / x-www-form-urlencoded вместо application / xml?

С XML все работает просто отлично:

curl -i -X 'POST' -H 'Content-Type: application/xml' http://localhost:3000 -d '<user><name>John Doe</name><emails><email><address>jdoe@gmail.com</address></email><email><address>jdoe@yahoo.com</address></email></emails></user>'

И результат:

Parameters: {"action"=>"profile", "controller"=>"users", "user"=>{"name"=>"John Doe", "emails"=>{"email"=>[{"address"=>"jdoe@gmail.com"}, {"address"=>"jdoe@yahoo.com"}]}}}

Но я пытаюсь добиться того же результата без XML.

Я пытался так:

curl -i -X POST -d 'user[name]=John Doe&user[emails][email][address]=jdoe@gmail.com&user[emails][email][address]=jdoe@yahoo.com' http://localhost:3000/

Но это не сработало:

Parameters: {"user"=>{"name"=>"John Doe", "emails"=>{"email"=>{"address"=>"jdoe@yahoo.com"}}}}

1 Ответ

9 голосов
/ 14 февраля 2011

не могли бы вы попробовать следующее:

curl -i -X POST -d 'user[name]=John Doe&user[emails][][email][address]=jdoe@gmail.com&user[emails][][email][address]=jdoe@yahoo.com' http://localhost:3000/

Обратите внимание на [] позади [emails]

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