如果与其他型号的电子邮件不同,如何验证电子邮件

时间:2019-05-29 12:10:25

标签: ruby-on-rails validation devise

我有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时未显示任何错误消息)。

有人可以让我知道写这种验证的最佳方法吗?

1 个答案:

答案 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