Search code examples
ruby-on-railsdevise

devise: not requiring email


I would like to NOT require email for signing in using devise. I removed email from config/initializers/devise.rb:

config.authentication_keys = [ :login ]

and added this to my user model:

def email_required?
  false
end

However, I am getting this error when I try to save the user:

SQLite3::SQLException: users.email may not be NULL

Am I suppose to change something in the migration?


Solution

  • It looks like you have the email field set in the database as "not NULL" or "Allow Null" to false. And you are getting an error directly from the database. Assuming that your user model is called user you need to add the fallowing migration to fix that:

    change_column :users, :email, :string, :null => true 
    

    Documentation: http://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/change_column