DeviseがRails4に対応しました。
gem 'devise'
で大丈夫です。
メールアドレスではなく、ユーザ名でログインするには
config/initalizers/devise.rb
config.authentication_keys = [ :username ]
に書き換え、Viewを書き換えると昔はできたらしい。(もちらん、usernameカラムは作ってください。
しかし、これだけだとエラーがでる。
上記に加えUserModle
のemail_required?
とemail_changed?
をOverrideすればできるようになった。
User.rb
#UserModel
def email_required?
false
end
def email_changed?
false
end
参考URL
What are good ways to remove email as a required field in devise?
5時間ぐらい探したけど、しれってQuoraに書いてありました。