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"}
Run Code Online (Sandbox Code Playgroud)
有以下强烈的参数:
params.permit(:user_id, :order_status_id, :delivery_type_id, :delivery_time, order_items:[])
Run Code Online (Sandbox Code Playgroud)
但是这段代码返回没有'order_items'数组的哈希.我认为原因是数组中的哈希.请告诉我,我该如何解决?提前致谢
ver*_*as1 16
您可以包含嵌套数组,对于您的示例,它将是:
params.permit(:user_id, :order_status_id, :delivery_type_id, :delivery_time, order_items: [:count, :item_id])
Run Code Online (Sandbox Code Playgroud)
其他人可以在这里找到更多 - 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])
Run Code Online (Sandbox Code Playgroud)
但是,请记住添加以下行以接受模型中的嵌套属性。例如:
class Order < ActiveRecord::Base
has_many :order_items
accepts_nested_attributes_for :order_items
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10624 次 |
最近记录: |