[英]How do I get a Hash attribute value past Strong Parameters in Rails?
我正在尝试在模型中使用序列化的哈希属性。 我已经设置好表格,因此它可以正确提交数据。 这是我得到的哈希:
Parameters: {"utf8"=>"√", "authenticity_token"=>"...", "product"=>{"name"=>"h", "description"=>"", "pricing_hash"=>{"Unit"=>"0.0", "Gram"=>"10.0", "Ounce"=>"200.0"}}, "commit"=>"Create Product"}
重要的值是:pricing_hash,数据应该是它的样子。 但是,当我提交时,它不会保存哈希,并且会收到控制台消息:
Unpermitted parameters: Unit, Gram, Ounce
我可以破解控制器,以允许我需要的值(单位,克等),尽管我想动态地执行此操作,以在将来扩展定价选项,但是我无法弄清楚如何形成控制器方法来允许那些参数。
您的强params方法应如下所示:
params.require(:product).permit(:name, :description,
pricing_hash: [:Unit, :Gram, :Ounce])
我不确定100%是否大写。 但是,散列必须在列表的末尾。 例如,您不能在后面加上:name
,否则会抛出错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.