ruby-on-rails – 如何为Rails POST方法构建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

我正在使用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'
}

邮差请求设置:

我也尝试过:

{
  'power_up': {
    'name': 'foo','description': 'bar'
   }
}

power_ups_controller.rb中的create方法和强参数声明中的代码:

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

解决方法

对不起,回答这个问题太晚了,但可能会帮助别人.

您需要做的就是 – 在您的请求标题中(在邮递员或任何客户端)添加

Content-Type =’application / json’

或者,您也可以使用curl(source)进行尝试:

curl -X POST -H“Content-Type:application / json”-d'{“power_up”:{“名字”:“foo”,“description”:“bar”}}’127.0.01:3000 / v1 / power_ups.json

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...