ActionController :: ParameterMissing в методе обновления - PullRequest
0 голосов
/ 21 января 2019

У меня ошибка ParameterMissing для метода обновления. Я использовал patch для запуска этого метода, вот команда

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 голосов
/ 21 января 2019

Попробуйте это:

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

Если вы протестируете ваше приложение, почтальон будет более удобным выбором.

0 голосов
/ 21 января 2019

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

Я думаю, что проблема в том, что данные - это содержимое в формате JSON, тогда вы должны использовать заголовок: Content-Type: application.json

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...