Rails - 外部验证器

时间:2016-02-11 13:07:02

标签: ruby-on-rails ruby validation rspec

在我的ruby类中,我注意到有几个重复的验证器,例如验证Id的存在的验证器...... 我想在外部类/模块/文件中收集这些验证器,然后执行类似

的操作
class User
  include Mongoid::Document
  ...
  validates_with :MyCustomExternalValidator

这可能吗?

详细说明:
- 最好的红宝石 -RSPEC用于测试

1 个答案:

答案 0 :(得分:4)

是的,确实如此。来自guides.rubyonrails.org

class MyValidator < ActiveModel::Validator
  def validate(record)
    unless record.name.starts_with? 'X'
      record.errors[:name] << 'Need a name starting with X please!'
    end
  end
end

class Person
  include ActiveModel::Validations
  validates_with MyValidator
end