我的用户模型中有以下验证。当用户是访客时,我不希望它运行,因此我添加了unless
proc:
with_options :unless => :guest_user? do |user|
before_save { |user| user.email = email.downcase }
validates :email, presence: true, uniqueness: {case_sensitive: false}
end
这会调用方法guest_user?
,并且在用户是来宾时不应该运行。但是,验证在所有情况下都会运行。如何修复unless
proc以使其有效?
答案 0 :(得分:5)
尝试
with_options :unless => :guest_user? do |o|
o.before_save { |user| user.email = email.downcase }
o.validates :email, presence: true, uniqueness: {case_sensitive: false}
end