Я хочу иметь возможность защищать поле электронной почты учетной записи от обновления, но не при первом создании записи учетной записи.
Я попробовал следующее:
validate :email_is_unchanged, :on => :update
def email_is_unchanged
errors.add :email, "can only be changed through confirmation" if email_changed?
end
но когда я пытаюсь сделать следующее (с существующей записью в базе данных):
a = Account.first
a.update_attributes ({: email =>
"Email@example.com")}
Возвращает true, но не сохраняет запись. Проверка ошибок показывает, что была добавлена ошибка из метода проверки.
Есть ли лучший способ сделать это?