Как проверить электронную почту, если она не совпадает с электронной почтой другой модели - PullRequest
0 голосов
/ 29 мая 2019

У меня есть 2 переменные «электронная почта» и «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 и электронная почта одинаковы, umail был сохранен без отображения сообщения об ошибке).

Может кто-нибудь дать мне знать, как лучше написать для такого рода проверки?

1 Ответ

1 голос
/ 29 мая 2019

Попробуйте,

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...