Help us understand the problem. What is going on with this article?

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

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

ikyu
「こころに贅沢を」をコンセプトに一休.com、一休レストランなどのサービスを提供しています。
https://www.ikyu.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away