更新方法中的ActionController :: ParameterMissing

时间:2019-01-20 22:27:17

标签: ruby-on-rails

对于更新方法,我出现ParameterMissing错误。我使用补丁来触发此方法,这是命令

  

curl -i -X PATCH'localhost:3000 / products / 1'-d'{“ product”:{“ title”:“ t”,“ price”:“ 1.23”,“ count”:“ 3” }}'

Product_controller.rb

def edit
  @product = Product.find(params[:id])
end

def update
  # use update method
  @product = Product.find(params[:id])

  # use update_attributes to update the record
  if @product.update_attributes(product_params)
    render json: { status: :ok, message: 'Product updated ', data: @product }
  else
    render json: { status: :error, message: 'Product not available', data: @product }
  end
end

private
  def product_params
    params.require(:product).permit(:title, :price, :count)
  end

2 个答案:

答案 0 :(得分:0)

curl -i -X PATCH 'localhost:3000/products/1' -d '{"product":{ "title": "t", "price": "1.23", "count": "3"}}' -H 'Content-Type: application/json'

我认为问题在于数据是JSON内容,那么,您应该使用header: Content-Type: application.json

答案 1 :(得分:0)

尝试一下:

<IP:SERVERPORT>

如果您测试您的应用程序,Postman将会是更舒适的选择。