我有2个变量“ email”和“ umail”。 umail属于用户模型,电子邮件属于其他模型。我想验证umail,该内容不应与电子邮件相同。例如如果umail:“ abcd@xxx.com”和电子邮件:“ abcd@xxx.com”,则不应保存umail,并显示错误消息。
我试图像
那样编写设计验证“排除”validates :subdomain, exclusion: { in: User.current.email,
message: "%{value} is not allowed to use }
end
但是没有成功,所以我尝试了:
class Tecdb < ApplicationRecord
validates :umail, presence: true, if: :umail_not_allowed
def umail_not_allowed
errors.add( umail: "is not allowed to use" ) if :umail == User.current.email
end
但是也没有成功(意味着,即使umail和email都一样,保存umail时未显示任何错误消息)。
有人可以让我知道写这种验证的最佳方法吗?
答案 0 :(得分:1)
尝试一下
validate :check_email_and_umail
def check_email_and_umail
errors.add(:umail, "can't be the same as email") if umail == User.current.email
end