"Email can't be blank" Devise using username or email

Viewed 8270

I was following this how-to on How To: Allow users to sign in using their username or email address and did all the steps detailed there but when I try to register via the registrations/new.html.erb form I get this error:

Email can't be blank

In my model I have:

devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

attr_accessible :username, :email, :password, :password_confirmation, :remember_me

attr_accessor :login
attr_accessible :login

and

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

any advice with this problem?

======= UPDATE

I found something here ■[rails]How to use Devise and Rails , without EMail here it is something like:

  # Email is not required
  def email_required?
    false
  end

With that added in my model I can create a record with username and leaving the email field blank, but when I try to create a second record without email the database rises an error:

Mysql2::Error: Duplicate entry '' for key 'index_parents_on_email':...

Should I use this, remove the index from my table in the database, and just validate the username in the model? because I don't really need the email field on that model.

2 Answers
Related