【发布时间】:2009-07-16 12:39:12
【问题描述】:
我有一个用户模型,我检查它以确保提供的电子邮件地址是唯一的:
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
所以看起来验证仍在某个级别运行。有没有办法解决这个问题?
【问题讨论】:
标签: ruby-on-rails validation activerecord