{ "optional": 1234, "required": 5678 } }-6ren">
gpt4 book ai didi

ruby-on-rails - 需要属性的强参数

转载 作者:行者123 更新时间:2023-12-04 15:12:48 25 4
gpt4 key购买 nike

是否可以使用强参数根据需要标记散列的单个属性?

给定输入,如:

{
"example" => {
"optional": 1234,
"required": 5678
}
}

标准的强参数示例是:
params.require(:example).permit(:optional, :required)
鉴于您可能需要某些参数,我认为以下方法可行:
params.require(:example).require(:required)
params.require(:example).permit(:optional)

我尝试过:
params.require(:example => [ :required ]).permit(:optional)
params.require(:example).permit(:optional)
params[:example].require(:required)

还有什么我能想到的。

有谁知道它是否可能?

最佳答案

格雷格!

我有同样的问题,但毕竟我发现,这不是合适的问题。

看,这里是strong_parameters中require方法的源码 gem :

def require(key)
self[key].presence || raise(ActionController::ParameterMissing.new(key))
end

所以,基本上,没有办法在 params 散列中要求“必需”属性。但是换个角度看。我认为最好编写自己的 require 方法来做到这一点。由于我使用的是 rails,我刚刚添加了 validates_presence_of到模型。如果要使其动态化,可以创建自定义验证。你可以在这里找到它的文档:

http://guides.rubyonrails.org/v3.2.13/active_record_validations_callbacks.html#performing-custom-validations

关于ruby-on-rails - 需要属性的强参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16246143/

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