簡體   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