假设我有一个具有 3 个属性的模型类。我想确保这三个中至少有一个存在。
我必须为此编写自定义验证吗?或者有没有办法使用现有的验证助手来做到这一点?
最佳答案
您需要为此编写一个自定义验证器。您需要做的就是继承 ActiveModel::Validator
并实现 validate(record)
方法,该方法将添加到记录的 errors
哈希中错误事件:
class YourValidator < ActiveModel::Validator
def validate(record)
if (your_failure_condition_here)
record.errors[:base] << "Your error message"
end
end
end
然后在模型中使用验证器,如下所示(假设您已正确加载验证器类):
class YourModel
validates_with YourValidator
end
关于ruby-on-rails-3 - 如何编写依赖于类的多个属性的 Ruby on Rails 验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5888999/