Rails認証エンジンDeviseのControllerをカスタマイズする方法について説明します。
https://github.com/plataformatec/devise
Devise導入方法
Gemfileにdeviseを追加
Gemfile
gem 'devise'
deviseインストール&Userモデルを生成
bundle Install
rails g devise:install
rails g devise User
DeviseControllerのカスタマイズ方法
認証ユーザーのモデルが User であれば、app/controllers/users ディレクトリ以下にファイル作成
rails g devise:controllers users
rails g devise:controllers [scope]
で app/controllers/[scope]以下に以下のControllerが生成される
- confirmations_controller.rb
- omniauth_callbacks_controller.rb
- passwords_controller.rb
- registrations_controller.rb
- sessions_controller.rb
- unlocks_controller.rb
ルーティング設定
生成したDeviseControllerのルーティングを設定します。
routes.rb
devise_for :users, :controllers => {
:registrations => 'users/registrations'
}
上記はregistrations_controller.rbのルーティング設定で、sessions_controller.rbなどのルーティングも設定したい場合はroutes.rbに下記を追加
routes.rb
devise_for :users, :controllers => {
:registrations => 'users/registrations',
:sessions => 'users/sessions'
}
参考
Rails で Devise のコントローラーをカスタマイズ
Rails – Deviseのコントローラをカスタマイズする方法
Devise で devise_for メソッドによるルーティングを確認