Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用curl模拟带有嵌套资源数组的表单帖子_Ruby On Rails_Xml_Http_Rest_Curl - Fatal编程技术网

Ruby on rails 使用curl模拟带有嵌套资源数组的表单帖子

Ruby on rails 使用curl模拟带有嵌套资源数组的表单帖子,ruby-on-rails,xml,http,rest,curl,Ruby On Rails,Xml,Http,Rest,Curl,如何使用curl在具有嵌套属性的表单上使用application/x-www-form-urlencoded而不是application/xml生成http post 使用XML,它可以正常工作: curl -i -X 'POST' -H 'Content-Type: application/xml' http://localhost:3000 -d '<user><name>John Doe</name><emails><email>

如何使用curl在具有嵌套属性的表单上使用application/x-www-form-urlencoded而不是application/xml生成http post

使用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>'
但是,我试图在没有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"}}}}

请您尝试以下方法:

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/

请注意
[]
后面的
[电子邮件]

几乎:
参数:{“user”=>{“name”=>“John Doe”,“emails”=>[{“email”=>{“address”=>”jdoe@yahoo.com“}}]}}
数组部分可以工作,但只考虑最后一封电子邮件。嗯,这可以工作:<代码>curl-i-X POST-d'user[name]=johndoe和user[email][]=jdoe@gmail.com&用户[电子邮件][]=jdoe@yahoo.com' http://localhost:3000/谢谢你,迈克尔。在上次的评论中,您忘记了address属性。但在你的帮助下,我能算出:
curl-I-X POST-d'user[name]=johndoe&user[email][email][[address]=jdoe@gmail.com&用户[电子邮件][电子邮件][]地址]=jdoe@yahoo.com' http://localhost:3000/
[]
[电子邮件]
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/