Mam model użytkownika z typowymi atrybutami, takimi jak adres e-mail i hash_hasło itp. Chcę napisać sprawdzanie poprawności, które sprawdza obecność adresu e-mail, ale tylko wtedy, gdyRails Walidacja wiadomości e-mail użytkowników - wymaga potwierdzenia, gdy użytkownik zarejestruje się lub aktualizuje adres e-mail
1) nie ma jednej przechowywane w bazie danych dla tego obiektu (czyli jest to nowy użytkownik logując się)
2) użytkownik próbuje aktualizować swój adres e-mail .
Moje obecne validations
validates_presence_of :email
validates_presence_of :email_confirmation
validates_confirmation_of :email
są oczywiście zapobieganie mnie z aktualizacją żadnych atrybutów. Pomyślałem o użyciu
validates_presence_of: email,: if: email_validation_required?
def email_validation_required?
self.email.blank?
end
Ale to przyzwyczajenie pomoc w scenariuszu 2, ponieważ będzie ona zwróci true, ponieważ użytkownik nie posiada
hasło adres e-mail w
db.
Nie mogę się dowiedzieć, jak mogę ograniczyć to tylko do tych dwóch scenariuszy powyżej.
Czy ktoś może pomóc?
Przepraszam za spóźnioną odpowiedź barry, twoja prawica nie trzyma mnie. Właśnie replikowałem kod dla password_confirmation dla email_confirmation ale to ma różne wymagania. Dziękuję za wskazanie. – robodisco