如何在Rails 4中允许带散列的数组?

Rails 4中有以下参数:

{"delivery_time":"10","delivery_type_id":"1","order_items":[{"count":"5","item_id":"1"}],"order_status_id":"1","user_id":"1","action":"create","controller":"api/v1/orders"} 

有以下强烈的参数:

 params.permit(:user_id, :order_status_id, :delivery_type_id, :delivery_time, order_items:[]) 

但是这段代码返回没有’order_items’数组的哈希。 我认为原因是数组中的哈希。 请告诉我,我该如何解决? 提前致谢

您可以包含嵌套数组,例如它将是:

 params.permit(:user_id, :order_status_id, :delivery_type_id, :delivery_time, order_items: [:count, :item_id]) 

其他人可以在这里找到更多 – http://edgeapi.rubyonrails.org/classes/ActionController/StrongParameters.html

如此处所述,您可以允许嵌套属性,如下所示。

 params.permit(:user_id, :order_status_id, :delivery_type_id, :delivery_time, order_items_attributes:[:count, :item_id]) 

但是,请记住添加以下行以接受模型中的嵌套属性。 例如:

 class Order < ActiveRecord::Base has_many :order_items accepts_nested_attributes_for :order_items end