在我的ruby类中,我注意到有几个重复的验证器,例如验证Id
的存在的验证器......
我想在外部类/模块/文件中收集这些验证器,然后执行类似
class User
include Mongoid::Document
...
validates_with :MyCustomExternalValidator
这可能吗?
详细说明:
- 最好的红宝石
-RSPEC用于测试
答案 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