У меня есть модель пользователя, на которой я проверяю, чтобы убедиться, что указанный адрес электронной почты уникален:
validates_uniqueness_of :email
Эта модель действует как параноик. При уничтожении мне нужно удалить адрес электронной почты, чтобы, если пользователь хочет перерегистрировать, он мог. Для этого у меня есть следующее:
before_destroy :remove_email
def remove_email
self.email = "[deleted]"
save(false)
end
Метод вызывается в соответствующее время, но метод save выдает следующую ошибку:
ActiveRecord::StatementInvalid: Mysql::Error: Duplicate entry '[deleted]' for key 2: UPDATE `users` SET `email` = '[deleted]', `updated_at` = '2009-07-16 12:29:05' WHERE `id` = 53
Так что похоже, что проверка все еще выполняется на каком-то уровне. Есть ли способ обойти это?