gpt4 book ai didi

validation - 如何在自定义验证方法中使用现有的 Rails 验证器?

转载 作者:行者123 更新时间:2023-12-04 04:30:11 28 4
gpt4 key购买 nike

我想在我的模型中创建一个自定义验证方法,并在自定义验证方法中使用一些现有的验证器(特别是 validates_numericality_of)。

这可能吗?如果是这样,我该怎么做?

对于某些上下文:我们正在使用具有哈希属性的非 ActiveRecord ORM。我想对哈希中的内容执行验证。如果有办法做到这一点,比如 validates_numericality_of :my_attribute.:subattribute或者什么的,那也可以。

谢谢你。

最佳答案

我相信这应该对你有用。

class MyCustomValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
validator = ActiveModel::Validations::NumericalityValidator.new(
:greater_than_or_equal_to => options[:min],
:less_than_or_equal_to => options[:max],
:attributes => value[:some_attribute]
)
validator.validate(record)
end
end

你可以这样使用它:
validates(
:my_pseudo_attribute,
:my_custom => {
:min => 0,
:max => 100
}
)

def my_pseudo_attribute
{
:some_attribute => 'foo'
}
end

关于validation - 如何在自定义验证方法中使用现有的 Rails 验证器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25333033/

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