Я следил за тем, как -на Как :Разрешить пользователям входить в систему, используя свое имя пользователя или адрес электронной почты , и выполнил все шаги, описанные там, но когда я пытаюсь зарегистрироваться через registrations/new.html.erb
форме я получаю эту ошибку:
Email can't be blank
В моей модели у меня есть:
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :username, :email, :password, :password_confirmation, :remember_me
attr_accessor :login
attr_accessible :login
и
def self.find_first_by_auth_conditions(warden_conditions)
conditions = warden_conditions.dup
if login = conditions.delete(:login)
where(conditions).where(["lower(username) = :value OR lower(email) = :value", { :value => login.downcase }]).first
else
where(conditions).first
end
end
любой совет с этой проблемой?
======= ОБНОВЛЕНИЕ
Я нашел кое-что здесь ■[rails]Как использовать Devise и Rails без электронной почты здесь что-то вроде:
# Email is not required
def email_required?
false
end
С этим, добавленным в мою модель, я могу создать запись с именем пользователя и оставить поле электронной почты пустым, но когда я пытаюсь создать вторую запись без электронной почты, в базе данных возникает ошибка:
Mysql2::Error: Duplicate entry '' for key 'index_parents_on_email':...
Должен ли я использовать это, удалить индекс из моей таблицы в базе данных и просто проверить username
в модели? потому что мне действительно не нужно поле электронной почты в этой модели.