如果这与其他模型的电子邮件不同,如何验证电子邮件
How to validate an e-mail if this is not same as other model's e-mail
我有 2 个变量 "email" 和 "umail"。 umail 属于用户模型,电子邮件属于其他模型。我想验证 umail,其中的内容不应该与电子邮件相同。例如如果 umail: "abcd@xxx.com" 和 email: "abcd@xxx.com",则不应保存 umail 并应显示一条错误消息。
我尝试像
那样编写设计验证 "exclusion"
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 也被保存了,没有显示任何错误消息)。
谁能告诉我这种验证的最佳编写方式是什么?
试试这个,
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
我有 2 个变量 "email" 和 "umail"。 umail 属于用户模型,电子邮件属于其他模型。我想验证 umail,其中的内容不应该与电子邮件相同。例如如果 umail: "abcd@xxx.com" 和 email: "abcd@xxx.com",则不应保存 umail 并应显示一条错误消息。
我尝试像
那样编写设计验证 "exclusion"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 也被保存了,没有显示任何错误消息)。
谁能告诉我这种验证的最佳编写方式是什么?
试试这个,
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