gpt4 book ai didi

ruby-on-rails - 只有当所有其他验证都通过时才执行一个验证

转载 作者:数据小太阳 更新时间:2023-10-29 06:26:55 26 4
gpt4 key购买 nike

我正在构建自定义验证,使用外部 API 检查银行帐号排序代码,以测试它们是否存在(即是否是正确有效的英国银行账户) ).由于这是一项昂贵的操作,除非帐号和排序代码通过 Rails 的内置验证,否则我不想打扰 API。

例如,我有这些基本验证:

validates_presence_of :sort_code, :account_number
validates_format_of :sort_code, :with => Regexes::SORT_CODE
validates_format_of :account_number, :with => Regexes::ACCOUNT_NUMBER

然后我有我的自定义验证:

validate :check_valid_bank_account

def check_valid_bank_account
# code here is irrelevant, but essentially this hits the API
# if it's a valid UK bank account all is OK, if not we add an error
end

我想确保的是,只有在模型的其余部分有效时才会执行自定义验证。当我自己解决这个问题时,支付 25 便士却被告知没有提供帐号是没有意义的!

我知道我可以编写一些逻辑来检查这两个属性是否为空并手动将它们与正则表达式匹配......但这似乎不是 Rails 的方式。

最佳答案

您可以检查 errors 数组并返回。

def check_valid_bank_account
return unless errors.blank?

end

关于ruby-on-rails - 只有当所有其他验证都通过时才执行一个验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4830743/

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