ruby-on-rails – 独特的约束问题偏执狂宝石
发布时间:2020-12-17 02:26:04 所属栏目:百科 来源:网络整理
导读:我有一个rails应用程序,我正在使用设计和偏执宝石. 我在postgres db中有一个用户表,它在电子邮件列上有唯一的验证. 我使用偏执狂进行软删除,问题是当我删除用户然后使用已删除用户的电子邮件创建用户时它会抛出错误PG :: UniqueViolation:ERROR. 我已经读过
我有一个rails应用程序,我正在使用设计和偏执宝石.
我在postgres db中有一个用户表,它在电子邮件列上有唯一的验证. 我使用偏执狂进行软删除,问题是当我删除用户然后使用已删除用户的电子邮件创建用户时它会抛出错误PG :: UniqueViolation:ERROR. 我已经读过这个并且知道这可以使用rails的部分索引功能来解决. http://scottsmerchek.com/2015/08/03/taking-the-d-out-of-crud/ https://devcenter.heroku.com/articles/postgresql-indexes#partial-indexes 我该如何实现? 解决方法
由于您将用户删除为软删除,因此电子邮件未从数据库中删除,因此只有用户属性is_deleted设置为true.
要解决PG :: UniqueViolation:ERROR,您现在必须在字段电子邮件和deleted_at上创建唯一索引 class AddUniqueIndexToUsers < ActiveRecord::Migration def change remove_index :users,column: :email add_index :users,[:email,:deleted_at],unique: true end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |