Posted at

Rails4でdeviseのControllerをカスタマイズする

More than 3 years have passed since last update.

Rails認証エンジンDeviseのControllerをカスタマイズする方法について説明します。

:octocat: 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 メソッドによるルーティングを確認