ruby-on-rails 如何检查特定属性是否为有效的ruby on rails

ukdjmx9f  于 2023-02-14  发布在  Ruby
关注(0)|答案(2)|浏览(108)

我一直在寻找一种开箱即用的方法来检查某个特定的属性是否对某个模型有效,但是我没有找到任何东西,我认为rails没有提供一种非常简单的方法来检查这一点是很奇怪的。
注意:我不想使用valid?,因为它将运行我的模型中的所有验证。如果我遗漏了什么,请让我知道,提前感谢。

mnemlml8

mnemlml81#

经过几个小时的查找,我没有找到任何具体的东西,但我确实找到了解决问题的方法。假设您有一个名为User的模型(这是很常见的),并且您希望验证 email 是否符合您现有的验证,下面是一种仅检查该特定属性的方法。

user = User.new(email: 'foo!!!')
User.validators_on(:email).map{ |validator| validator.validate(user) } # apply the validator to the attribute
user.errors.full_messages # will return a list of all the errors found with the specified attribute
x0fgdtte

x0fgdtte2#

对我来说,检查一个属性的最快解决方案是:

user = User.new(email: 'wrongEmail')
user.validate(:email) => false or true

相关问题