最好的rails方式来实现自定义验证?

时间:2011-05-24 17:07:11

标签: ruby-on-rails ruby ruby-on-rails-3 validation model

我正在寻找实现自定义验证的最佳方法。我知道这个:

validates :email, :uniqueness => {:scope => :user_id}

它完美无缺。但是,我想做这样的事情(虚构的案例,但它很好地说明了):

validates :email, :uniqueness => {:scope => 'user.name'}

我正在考虑使用像解释here on rails cast这样的海关验证,但为此使用模块似乎有点过分。

任何人?

1 个答案:

答案 0 :(得分:3)

使用验证方法。

class Model

  validate :validate_email_with_scope

  private

    def validate_email_with_scope
      if Model.where(...).any?
        errors.add(:email, 'is not unique')
      end
    end

end

Model.where(...).any?替换为您的查询。