我有一个设计用户模型。当要创建用户时,不需要电子邮件(电子邮件是可选的(。我可以在第一个的无电子邮件(空白电子邮件(的情况下创建用户时间。当我第二次添加用户时,出现错误
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
现在它不会检查是否有电子邮件唯一性,您可以随时随地自己处理。