[英]Rails, strong parameters, and complex data structures
太后了,SO伙計們
我強烈參數化我們計划升級到Rails 4的Rails 3應用程序。一些控制器使用params
對象不僅保存嵌套哈希,而且保持數組內哈希內的數組中的哈希等。改變數據結構的性質太強烈了,我們希望理想情況下它返回相同的數據結構,但參數化程度很高
這是一個JSON的例子:
"my_example" => {
"options" =>
[{"id" => "1"
"name" => "claire"
"keywords" =>
["foo", "bar"]
},
{"id" => "2",
"name" => "marie",
"keywords =>
["baz"]
}],
"wut" => "I know, right?"
}
但為了增加樂趣, keywords
數組可以包含任何字符串。 我已經讀到了哪些,哪些是棘手的,並支持其他版本的rails,但無論如何。
有關使用strong_parameters gem制作復雜數據結構的一般經驗法則嗎? 我知道Rails 4和5處理得更好,但我很好奇。
嵌套參數並不是那么具有挑戰性。
params.require(:my_example)
.permit(:wutz, options: [:id, :name, keywords: []])
這需要options
是一組資源,其中鍵:id,:name和:關鍵字將列入白名單。
:wutz, :id, :name
可以是任何允許的標量類型。 keywords: []
允許任何標量類型的數組(任何字符串,整數,日期等)。 我真的不明白你為什么在這里煩惱。
問題主要在於具有極其動態內容的嵌套哈希。 在那種情況下,你可以使用的Rails強參數沒有完全覆蓋.permit!
並釋放Ruby散列切片和切割的完整工具,這些工具非常強大。
寶石幾乎在后續版本的Rails中向后移動了ActionController::Parameters
的api,所以在升級時我不會指望任何重大的hickup。
https://github.com/rails/strong_parameters#nested-parameters
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.