ActionController :: ParameterMissing (parameter not found: order)

I'm trying to send a send request using the chrome Postman extension to my Ruby on Rails application, but I keep getting an error

ActionController::ParameterMissing (param not found: order):
app/controllers/orders_controller.rb:27:in order_params'
app/controllers/orders_controller.rb:20:in create

Code in my order_controller

class OrdersController < ApplicationController
  protect_from_forgery :except => :create

  def new
    @order = Order.new
  end

  def index
    @orders = Order.all  
  end

  def show
    @order = Order.find(params[:id])    
  end

  def create
    @order = Order.new(order_params)
    render text: params[:product]   
  end

  private

  def order_params
    params.require(:order).permit(:product)
  end
end

My key A couple of values ​​for the Postman extension: product[product_name] Samsung

+4
source share
2 answers

To use params.require(:order). incoming parameters should be something like{"order"=>...}

See the documentation at http://edgeapi.rubyonrails.org/classes/ActionController/StrongParameters.html to use Strong Options.

-, , "". - .

,

+8

, params -, . .

:

:

def progress_params
    params.require(:progress).permit(:game_id, :level_id)
end

:

<%= link_to "Completed", progresses_path(:progress =>{:game_id => @level.game_id.to_i, :level_id => @level.id.to_i} ), :method => :post %>
+2

All Articles