Joe*_*sey 8 rest ruby-on-rails postman
无论我如何格式化此请求的原始部分,我都无法避免下面的解析错误.
我有一个带有传递规范的create方法的Rails API,以说明控制器消息是合理的:
describe "POST power_up" do
let!(:client) { FactoryGirl.create :client, name: "joe", auth_token: "asdfasdfasdfasdfasdfasdf" }
it "should create and save a new Power Up" do
expect { post :create, format: :json, power_up: FactoryGirl.attributes_for(:power_up) }.to change(V1::PowerUp, :count).by(1)
end
end
Run Code Online (Sandbox Code Playgroud)
我正在使用Postman尝试POST.无论我尝试什么,我都会收到错误:
Started POST "/v1/power_ups.json" for 127.0.0.1 at 2014-08-30 18:05:29 -0400
Error occurred while parsing request parameters.
Contents:
{
'name': 'foo',
'description': 'bar'
}
ActionDispatch::ParamsParser::ParseError (795: unexpected token at '{
'name': 'foo',
'description': 'bar'
}
Run Code Online (Sandbox Code Playgroud)
邮差要求设置:

我也尝试过:
{
'power_up': {
'name': 'foo',
'description': 'bar'
}
}
Run Code Online (Sandbox Code Playgroud)
来自create方法和强参数声明的代码power_ups_controller.rb:
def create
@power_up = PowerUp.new(power_up_params)
if @power_up.save!
redirect_to @power_up
end
end
private
def power_up_params
params.require(:power_up).permit(:name, :description)
end
Run Code Online (Sandbox Code Playgroud)
Tej*_*tel 10
对不起有点太迟回答这个但可能会帮助其他人.
您需要做的只是-在您的请求标题(邮递员或任何客户端)添加
Content-Type = 'application/json'
或者,您也可以使用curl(source)进行尝试:
curl -X POST -H "Content-Type: application/json" -d '{"power_up": {
"name": "foo",
"description": "bar"
}
}' 127.0.01:3000/v1/power_ups.json
单引号(')实际上不是JSON中合法的字符串分隔符:字符串必须用双引号(")括起来.你可以在浏览器中使用它,因为它们是javascript中的字符串分隔符.你可以很容易地复制它在一个irb会议上
JSON.parse(%q[{'foo': 'bar'}]) #=> raises JSON::ParserError
JSON.parse(%q[{"foo": "bar"}]) #=> ok
Run Code Online (Sandbox Code Playgroud)
另外,根据您的规范,您应该使用第二种形式,即
{
"power_up": {
"name": "foo",
"description": "bar"
}
}
Run Code Online (Sandbox Code Playgroud)
就像@Tejas Patel所说的那样都是关于标题的.但不是明确地设置它们,你可以:
在请求创建区域切换到body选项卡.设置raw单选按钮.在较低的文本区域输入您的身体:
{
"power_up": {
"name": "foo",
"description": "bar"
}
}
然后在rigth的下拉列表中选择JSON (application/json)选项而不是默认Text选项.这将自动设置所需的标头.就是这样 - 你可以按"发送"按钮.
| 归档时间: |
|
| 查看次数: |
14361 次 |
| 最近记录: |