J'ai un modèle utilisateur sur lequel je vérifie pour vous assurer que l'adresse e-mail fournie est unique:ActiveRecord save (false) valider encore le modèle
validates_uniqueness_of :email
Ce modèle agit comme paranoïaque. Sur détruire, j'ai besoin de supprimer l'adresse e-mail de sorte que si l'utilisateur veut se réinscrire, ils peuvent. Pour cela, je donne les résultats suivants:
before_destroy :remove_email
def remove_email
self.email = "[deleted]"
save(false)
end
La méthode est appelée au moment opportun, mais la méthode d'enregistrement jette l'erreur suivante:
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
Il semble donc que la validation est toujours en cours d'exécution à un certain niveau. Y a-t-il un moyen de contourner cela?