Ho un modello Utente con gli attributi usuali come email e hashed_password ecc. Voglio scrivere una convalida che controlli la presenza di un indirizzo di posta elettronica, ma solo quandoConvalida Rails per gli utenti email - vuole solo che si convalidi quando un utente si iscrive o aggiorna l'indirizzo email
1) non v'è quella memorizzata nel database per questo oggetto (vale a dire che questo è un nuovo utente la firma)
2) l'utente sta cercando di aggiornare il proprio indirizzo e-mail .
miei convalide attuali
validates_presence_of :email
validates_presence_of :email_confirmation
validates_confirmation_of :email
sono ovviamente mi impediscono di aggiornare tutti gli attributi. Ho pensato di utilizzare
validates_presence_of: email,: if: email_validation_required?
def email_validation_required?
self.email.blank?
end
Ma che aiutano solito con lo scenario 2 in quanto restituirà true perché l'utente ha un
password dell'indirizzo e-mail
nel db.
Non riesco a capire come posso limitarlo solo a quei 2 scenari sopra.
Qualcuno può aiutare?
scusa per la risposta tardiva Barry, il tuo diritto al riguardo non mi trattiene. Stavo solo replicando il codice per password_confirmation per email_confirmation ma questo ha requisiti diversi. Grazie per segnalarlo. – robodisco