Ruby on rails 如何在rails 4强参数中传递数组
我必须在我的订单控制器中传递一组食物项目ID。每道菜都有很多食物。如何在强参数中以数组形式传递这些食物\u项\u id orders_controller.rbRuby on rails 如何在rails 4强参数中传递数组,ruby-on-rails,arrays,Ruby On Rails,Arrays,我必须在我的订单控制器中传递一组食物项目ID。每道菜都有很多食物。如何在强参数中以数组形式传递这些食物\u项\u id orders_controller.rb def create @order = Order.new(order_params) if @order.save render :json, @order, status:201, location: [:api, @order] else
def create
@order = Order.new(order_params)
if @order.save
render :json, @order, status:201, location: [:api, @order]
else
render :json, { errors: @order.errors }, status:422
end
end
private
def order_params
params.require(:order).permit(:customer_id, :order_id, :pos_id, :table_id, :order_number,
:order_status,:order_date, :food_item_id => [])
end
end
这是以强参数发送数组的正确方法吗?根据文档:
允许的标量类型有字符串、符号、NilClass、数值、TrueClass、FalseClass、日期、时间、日期时间、StringIO、IO、ActionDispatch::Http::UploadedFile和Rack::Test::UploadedFile
要声明params中的值必须是允许的标量值数组,请将键映射到空数组:
如果它不工作,你可能有一个拼写错误。。。您已询问如何传递食品项目\u id
,但您允许:食品项目\u id=>[]
。因此,再次检查控制器中接收到的参数
,您可能需要更改:
:food_items_id => []
简单的答案是什么
是,这就是将数组传递给强参数的方式
值得注意的是,如果通过强参数传递数组,则必须在所有非数组参数之后引用它们。然而,在这种情况下,您已经在这样做了
:food_items_id => []