ruby-on-rails - 如何在rails 4中传递数组强参数

标签 ruby-on-rails arrays

我必须在我的 order_controller 中传递一系列 food_item_ids 。每个订单都会有很多 food_items。如何将这些 food_items_id 作为强参数中的数组传递。

orders_controller.rb

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

这是在强参数中发送数组的正确方法吗 :food_item_id => []

最佳答案

根据文档https://github.com/rails/strong_parameters#permitted-scalar-values :

The permitted scalar types are String, Symbol, NilClass, Numeric, TrueClass, FalseClass, Date, Time, DateTime, StringIO, IO, ActionDispatch::Http::UploadedFile and Rack::Test::UploadedFile.

To declare that the value in params must be an array of permitted scalar values map the key to an empty array:

params.permit(:id => [])

如果它不起作用,您可能有拼写错误...您已询问如何传递 food_items_id,但您允许 :food_item_id => [] 。因此,请仔细检查您在 Controller 中收到的params,您可能需要更改:

:food_items_id => []

关于ruby-on-rails - 如何在rails 4中传递数组强参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30980543/

相关文章:

使用自定义比较器对基元数组执行排序的 Java 库

Javascript - 解释数组的问题

ruby-on-rails - 如何使用 Rails 设置 Azure Redis 缓存

ruby-on-rails - 如何在互联网上的 Rails 服务器上访问 localhost ruby​​?

java - 将字符串数组作为隐藏值从一个 jsp 传递到另一个 jsp

c# - 如何在不使用 C# 中的 System.Collection 或 LINQ 的情况下从数组中删除元素?

ruby-on-rails - link_to 可以导致渲染吗?

ruby-on-rails - JSONAPI-资源:NameError 找不到资源

ruby-on-rails - 定期延迟工作

c++ - 以正确的顺序从十进制转换为二进制