«Электронная почта не может быть пустой» Разработка с использованием имени пользователя или электронной почты

Я следил за тем, как -на Как :Разрешить пользователям входить в систему, используя свое имя пользователя или адрес электронной почты , и выполнил все шаги, описанные там, но когда я пытаюсь зарегистрироваться через 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в модели? потому что мне действительно не нужно поле электронной почты в этой модели.

6
задан Mr_Nizzle 27 July 2012 в 15:29
поделиться