gpt4 book ai didi

ruby-on-rails - Rails、强大的参数和复杂的数据结构

转载 作者:数据小太阳 更新时间:2023-10-29 07:54:48 25 4
gpt4 key购买 nike

大家好

我非常擅长参数化一个我们计划升级到 Rails 4 的 Rails 3 应用程序。一些 Controller 使用 params 对象来保存不仅嵌套的散列,还保存数组中的散列和数组中的散列等。改变数据结构的性质会过于强烈,我们希望理想情况下让它返回相同的数据结构,但强参数化

这是一个 JSON 示例:

"my_example" => {
"options" =>
[{"id" => "1"
"name" => "claire"
"keywords" =>
["foo", "bar"]
},
{"id" => "2",
"name" => "marie",
"keywords =>
["baz"]
}],
"wut" => "I know, right?"
}

但为了增加乐趣,keywords 数组可以包含任何字符串。我有read about and which is tricky and supported in other versions of rails但是无所谓。

关于使用 strong_parameters gem 构建复杂的数据结构,是否有任何通用的经验法则?我知道 Rails 4 和 5 可以更好地处理这个问题,但我很好奇。

最佳答案

嵌套参数并不是那么具有挑战性。

params.require(:my_example)
.permit(:wutz, options: [:id, :name, keywords: []])

这期望 options 是一个资源数组,其中键 :id、:name 和 :keywords 将被列入白名单。

:wutz, :id, :name 可以是任何允许的标量类型。 keywords: [] 允许任何标量类型的数组(任何字符串、整数、日期等)。我真的不明白你为什么在这里烦恼。

问题主要在于具有极其动态内容的嵌套哈希。在 Rails 强参数没有完全覆盖的情况下,您可以使用 .permit! 并释放 Ruby 散列切片和切 block 的完整工具,这是非常强大的。

该 gem 几乎向后移植了 Rails 更高版本中 ActionController::Parameters 的 api,因此我预计在升级时不会出现任何重大问题。

https://github.com/rails/strong_parameters#nested-parameters

关于ruby-on-rails - Rails、强大的参数和复杂的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53344833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com