如果已经存在特定的电子邮件(空白电子邮件),如何允许设计保存用户



我有一个设计用户模型。当要创建用户时,不需要电子邮件(电子邮件是可选的(。我可以在第一个的无电子邮件(空白电子邮件(的情况下创建用户时间。当我第二次添加用户时,出现错误

duplicate key value violates unique constraint "index_accounts_on_email" DETAIL: Key (email)=() already exists.

我认为如果已经存在空白的电子邮件。

只有在电子邮件不是空白的情况下,有没有办法验证唯一性,并且我可以使用空白的电子邮件添加如此多的用户?

user.rb

class User < ApplicationRecord
 devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :validatable, :confirmable, :omniauthable
protected
 def password_required?
  false
 end
def email_required?
  false
end
end

如果您在创建用户的迁移文件中查看您会找到该行:

add_index :users, :email, unique: true

删除此操作的一种方法是删除索引完成,并在无唯一性的情况下再次添加它:

remove_index :users, :email
add_index :users, :email

现在它不会检查是否有电子邮件唯一性,您可以随时随地自己处理。

相关内容

最新更新