У меня есть модель User с обычными атрибутами, такими как электронная почта и hashed_password и т.д. Я хочу написать проверку, которая проверяет наличие адреса электронной почты, но только когда
1) в базе данных для этого объекта не сохранено ни одного (т.е. это регистрация нового пользователя)
2) пользователь пытается обновить свой адрес электронной почты.
Мои текущие проверки
validates_presence_of :email
validates_presence_of :email_confirmation
validates_confirmation_of :email
очевидно, мешают мне обновлять любые атрибуты. Я думал об использовании
validates_presence_of: email,: if: email_validation_required?
def email_validation_required?
self.email.blank?
end
Но это не поможет со сценарием 2, поскольку оно вернет true, потому что у пользователя есть адрес password в db.
Я не могу разобраться, как я могу ограничить его только этими двумя сценариями выше.
Может ли кто-нибудь помочь?