这是我的问题.. 资源:用户 方法:创建
我这样称呼curl:
curl -X POST -H 'Content-type: text/xml' -d '<xml><login>john</login><password>123456</password></xml>' http://0.0.0.0:3000/users
但是rails中的params hash看起来像这样:
{"xml"=> {"login"=>"luca", "password"=>"123456"}}
我希望它看起来像这样:
{"login"=>"luca", "password"=>"123456"}
如果我在url上传递参数(...?login = luca&amp; pas ....),我可以得到它,但那不好......
任何想法?
答案 0 :(得分:3)
curl -X POST -d 'login=john&password=123456' http://0.0.0.0:3000/users
答案 1 :(得分:2)
curl -X POST -H 'Content-type: text/xml' -d '<login>john</login><password>123456</password>' http://0.0.0.0:3000/users
这对你有什么影响?
收到您的评论后,为什么不通过控制器中的params [:xml]访问它,而不是params [:login]和params [:password]?
@user = User.authenticate(params[:xml])
这会将登录名和密码传递给您的模型。
答案 2 :(得分:1)
在initializers目录中创建一个新的defaults.rb:yourapp / config / initializers / defaults.rb
ActiveRecord::Base.include_root_in_json = false
现在应该从你的json中删除root。