我正在寻找实现自定义验证的最佳方法。我知道这个:
validates :email, :uniqueness => {:scope => :user_id}
它完美无缺。但是,我想做这样的事情(虚构的案例,但它很好地说明了):
validates :email, :uniqueness => {:scope => 'user.name'}
我正在考虑使用像解释here on rails cast这样的海关验证,但为此使用模块似乎有点过分。
任何人?
答案 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?
替换为您的查询。