我正在尝试使用acts_as_paranoid 插件来软删除记录。我之前使用数据库中的标志来管理它。我知道这个插件会从搜索中省略一条记录,并查找该记录是否被软删除。我想知道的是我是否在模型中进行了验证,例如validates_uniqueness_of :email
我删除(软删除)包含电子邮件的记录'[电子邮件受保护] /cdn-cgi/l/email-protection'。现在,当我尝试创建具有相同电子邮件地址的新用户时,验证是否有效并阻止创建新记录。或者它会像查找结果一样省略软删除记录吗? (当然,我希望这样的事情发生。)
acts_as_paranoid
不重新实现validates_uniqueness_of
,因此,如果您(软)删除了电子邮件为“princ”的记录[电子邮件受保护] /cdn-cgi/l/email-protection' 您无法使用同一电子邮件创建新记录。
解决此问题的简单方法是将范围添加到 validates_uniqueness_of:
validates_uniqueness_of :email, :scope => :deleted_at
这样您就可以通过电子邮件“prin”拥有任意数量的(软)删除记录[电子邮件受保护] /cdn-cgi/l/email-protection' 并仍然使用同一电子邮件创建新记录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)