我有以下动态参数,具体取决于我尝试添加到订单的订单项
{"line_item" => {"items"=>{"0"=>{"price"=>"5.75", "name"=>"Item name", "quantity"=>"5"}, "1"=>{"price"=>"3.35", "name"=>"Item name", "quantity"=>"1"}}}
在我的控制器中:
def lineitems_params
params.require(:line_item).permit(:key1, :key2, :key3, :key4, :payment_type, :payment_provider).tap do |whitelisted|
whitelisted[:items] = params[:line_item][:items]
end
end
我仍然得到了
Unpermitted parameters: items
在我的日志中,它不会更新项目。 我该如何解决这个问题?
注意:items hash可以包含很多元素。
编辑:
在我的模特中:
serialize :items, Hash
答案 0 :(得分:0)
这应该有效
def lineitems_params
params.require(:line_item).permit(:key1, :key2, :key3, :key4, :payment_type, :payment_provider, {:items => {:price, :name, :quantity}})
end
<强>更新强>
可能你应该这样给予
def lineitems_params
params.require(:line_item).tap do |whitelisted|
whitelisted[:items] = params[:line_item][:items]
end
end
<强> Source 强>
注意:不要给params.require(:line_items).permit!
它允许所有属性。