我正在寻找实现自定义验证的最佳方法。我知道这一点:
validates :email, :uniqueness => {:scope => :user_id}
它工作得很完美。但是,我想做这样的事情(虚构的案例,但它很好地说明了):
validates :email, :uniqueness => {:scope => 'user.name'}
我正在考虑使用rails-cast中解释的海关验证,但使用模块似乎有点过头了。
有人吗?
使用验证方法。
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?
。