2

我正在构建一个 iOS 应用程序,它需要发布到 RoR API。

为了测试 POST,我正在运行以下命令:

curl -d @/tmp/data localhost:3000/api/ratings

其中 /tmp/data 包含一个哈希数组:

[    {        "uid": "gilt_162929239",        "rate": 1    }   ]

在 Ruby 中,参数看起来像这样:

[1] pry(#<Api::PromotionRatingsController>)> params
=> {"    {        \"uid\": \"good_162929239\",        \"rate\": 1    }   "=>nil,
 "format"=>"json",
 "action"=>"create",
 "controller"=>"api/ratings"}

如何让 Rails 为我创建哈希数组以迭代每个?

编辑:我看到我缺少标题。

添加到 curl 命令行:

--header "Accept: application/json" --header "Content-type: application/json"

现在,这是我的参数:

[1] pry(#<Api::PromotionRatingsController>)> params
=> {"_json"=>[{"uid"=>"good_162929239", "rate"=>1}],
 "format"=>"json",
 "action"=>"create",
 "controller"=>"api/ratings",
 "promotion_rating"=>{"_json"=>[{"uid"=>"good_162929239", "rate"=>1}]}}

还是不对。

4

1 回答 1

0

据此:_

如果您在初始化程序中打开了 config.wrap_parameters 或在控制器中调用了 wrap_parameters,则可以安全地省略 JSON/XML 参数中的根元素。默认情况下,参数将根据您的控制器名称克隆并包装在密钥中。

所以,我的猜测是你要么需要包含一个根元素,要么是 set config.wrap_parameters

于 2012-09-23T03:41:25.753 回答