В своем приложении на Rails я использую гем Devise для аутентификации пользователей.Мне нужно пропустить проверку электронной почты, если я создаю пользователя из панели администратора.Пока у меня есть этот код:
# User model
class User < ApplicationRecord
attr_accessor :skip_email_validation
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable
validates :email, presence: true, uniqueness: true, unless: :skip_email_validation
end
#User's controller create action
class Admin::UsersController < Admin::AdminController
def create
@user = User.new(user_params)
@user.skip_email_validation = true
if @user.save
redirect_to admin_user_path(@user), success: 'User created.'
else
render :new
end
end
end
Итак, когда я создал первого пользователя без электронной почты, он был сохранен в базе данных, но когда я создаю другого пользователя без электронной почты, у меня появляется ошибка:
Mysql2::Error: Duplicate entry '' for key 'index_users_on_email': INSERT INTO `users`
Я не понимаю, что является причиной этой ошибки, потому что я пропускаю проверку наличия и уникальности в модели.Заранее спасибо за ответ.