向rails应用程序发送发布请求时,卷曲命令失败

时间:2016-11-08 18:31:04

标签: ruby-on-rails curl

我有以下路线:

.class

在我的控制器中:

match '/curl_example' => 'people#curl_post_example', via: :post

我正在尝试使用以下内容通过curl命令创建一个人......

class PeopleController < ApplicationController
  before_action :set_person, only: [:show, :edit, :update, :destroy]
  skip_before_action :verify_authenticity_token, :only => [:curl_post_example]
...
  def curl_post_example
    Person.create(request.body.read)
    render plain: "Thanks for sending a POST request with cURL! Payload: #{request.body.read}"
  end
...

当我这样做时,我在控制台上收到此错误...

curl -X POST -d "{"first_name"=>"mista", "last_name"=>"wintas"}" http://localhost:3000/curl_example

对我来说看起来像哈希?我错过了什么?

1 个答案:

答案 0 :(得分:1)

你需要传递这样的参数:

 curl -d "person[first_name]=john" -d "person[last_name]=doe" 

来源:curl command line

然后,在你的控制器中:

private def person_params
  params.require(:person).permit(:first_name, :last_name)
end

并在person_params

中拨打params而不是Person.create...