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