Ich habe ein Benutzermodell mit den üblichen Attributen wie E-Mail und hashed_password usw. Ich möchte eine Validierung schreiben, die auf die Präsenz prüft eine E-Mail-Adresse, sondern nur dann, wennRails Validierung für Benutzer E-Mail - nur validieren, wenn ein Benutzer sich anmeldet oder E-Mail-Adresse aktualisiert
1) es nicht einen in der Datenbank für dieses Objekt (dh dies ist ein neuer Benutzer anmelden)
2) der Benutzer ihre E-Mail versucht, aktualisieren gespeichert ist Adresse .
Meine aktuelle Validierungen
validates_presence_of :email
validates_presence_of :email_confirmation
validates_confirmation_of :email
verhindert offensichtlich von mir alle Attribute zu aktualisieren. Ich dachte an
validates_presence_of: email,: if: email_validation_required?
def email_validation_required?
self.email.blank?
end
Aber das wird nicht Hilfe bei Szenario 2 wie es wahr zurück, weil der Benutzer eine E-Mail Adresse
Passwort in der db hat.
Ich kann nicht herausfinden, wie ich es auf nur diese 2 Szenarien oben begrenzen kann.
Kann jemand helfen?
Entschuldigung für die späte Antwort Barry, Ihr Recht darüber nicht halten mich auf. Ich habe gerade den Code für password_confirmation für email_confirmation repliziert, aber das hat andere Anforderungen. Danke, dass du es aufgezeigt hast. – robodisco