Devise Controllerをカスタマイズする

オーバーライド用のcontrollerを生成する

$ bundle exec rails g devise:controllers users

app/controllers/usersに以下のcontrollerが生成されます。

  • confirmations_controller.rb
  • omniauth_callbacks_controller.rb
  • passwords_controller.rb
  • registrations_controller.rb
  • sessions_controller.rb
  • unlocks_controller.rb

中身をみるとコメントアウトされているので、必要な部分をコメントインします。

routes.rbを設定する

devise_for :users, :controllers => {
  :sessions => 'users/sessions',
  :registrations => 'users/registrations'
}

確認

$ bundle exec rake routes

users/sessions#xxxと表示されたら切り替えOK

参考

Rails – Deviseのコントローラをカスタマイズする方法 | 田村倉庫