ruby-on-rails-3 - 如何编写依赖于类的多个属性的 Ruby on Rails 验证?

标签 ruby-on-rails-3 validation

假设我有一个具有 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/

相关文章:

ruby-on-rails - 为所有 Rails 环境配置设置

ruby-on-rails - 在 Windows 中执行 cron 时运行

css - 具有必需属性的 W3C CSS 验证器错误

ruby-on-rails - 为 ruby​​ gem 的唯一性验证添加范围

javascript - 允许在 javascript 中添加一位或两位数的时间

javascript - 开始输入内容时更改文本框的颜色而不是单击

ruby-on-rails - 将 Heroku Postgres 数据库从开发计划迁移到基本计划

ruby-on-rails - 什么是最新的稳定 Rails 版本?

ruby-on-rails - Haml 更新后 Capybara::Poltergeist::MouseEventFailed (4.0.7 => 5.0.2) [RAILS]

javascript - 使用数据破折号属性进行 Angular 2 表单字段验证