繁体   English   中英

如何在Rails中获得超过“强参数”的哈希值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM