ruby-on-rails - rails : calling standard validations from a custom validator

标签 ruby-on-rails validation rails-activerecord

有没有办法从自定义验证器中调用标准 Rails 验证器?

我有 OAuth/电子邮件注册/登录的组合,我希望能够在每种身份验证方法上调用某些验证器。例如,如果用户通过电子邮件注册,我希望能够调用 validates_uniqueness_of :email,然后调用单个验证器,例如 validates_with UserValidator

如果没有办法做到这一点,我将使用状态跟踪和一系列 :if 验证。

最佳答案

我相信没有办法从自定义验证器调用其他验证器,这也可能导致循环依赖,这是危险的。

您必须使用条件验证,但请记住,您可以像这样确定它们的范围(取自 Rails 指南)

with_options if: :is_admin? do |admin|
  admin.validates :password, length: { minimum: 10 }
  admin.validates :email, presence: true
end

关于ruby-on-rails - rails : calling standard validations from a custom validator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18261039/

相关文章:

ruby-on-rails - 如何在没有 eval 的情况下运行这行 ruby​​ 代码?

ruby-on-rails - 跟踪用户愿望 list 上产品 Markdown 的方法?

spring - 添加Validation后启动Spring时出现异常,maven依赖冲突

c# - 是否可以在 C# 中的 gridview 上进行验证?

mysql - Active Record 精度小数值被截断

ruby-on-rails - ruby rails : Running custom validation function only when other properties are present

ruby-on-rails - 使用:coffescript filter inside HAML templates?对性能的影响

ruby-on-rails - 在 CQRS 和 DDD 流程中创建值对象的位置

java jaxb eclipse

mysql - 如何获取不遵循 has_one 关联的对象列表?