Rails Validation pour les e-mails des utilisateurs - uniquement pour la validation lorsqu'un utilisateur s'inscrit ou met à jour son adresse e-mail

J'ai un modèle Utilisateur avec les attributs habituels tels que le courrier électronique et hashed_password etc. Je veux écrire une validation qui vérifie la présence d'une adresse e-mail mais uniquement lorsque

1) il n'y a pas stockées dans la base de données pour cet objet (c'est un nouvel utilisateur de la signature)

2) l'utilisateur est en train d'essayer de mettre à jour leur adresse de courriel.

Mes validations

  validates_presence_of :email
  validates_presence_of :email_confirmation

  validates_confirmation_of :email

sont évidemment me prévenir de la mise à jour des attributs. J'ai pensé à utiliser

validates_presence_of :email , :si :email_validation_required?

def email_validation_required?
self.email.blank?
end

Mais que l'habitude de l'aide avec le scénario 2, qui renvoie true car l'utilisateur ne dispose pas de mot de passe adresse e-mail dans la db.

Je ne peux pas savoir comment je peux limiter à ces 2 scénarios ci-dessus.

Peut aider quelqu'un?

source d'informationauteur robodisco