【Rails6】deviseにコントローラーファイルを追加する方法

【Rails6】deviseにコントローラーファイルを追加する方法

deviseには、最初からコントローラーファイルはついていませんので、追加の方法を記載しておきます。

deviseのcontrollerファイルを生成

下記のコマンドを実行します。

$ rails g devise:controllers users

そうすると、下記の様な出力メッセージがズラッと出てきます。

Running via Spring preloader in process 23240
      create  app/controllers/users/confirmations_controller.rb
      create  app/controllers/users/passwords_controller.rb
      create  app/controllers/users/registrations_controller.rb
      create  app/controllers/users/sessions_controller.rb
      create  app/controllers/users/unlocks_controller.rb
      create  app/controllers/users/omniauth_callbacks_controller.rb
===============================================================================

Some setup you must do manually if you haven't yet:

  Ensure you have overridden routes for generated controllers in your routes.rb.
  For example:

    Rails.application.routes.draw do
      devise_for :users, controllers: {
        sessions: 'users/sessions'
      }
    end

===============================================================================

これでdeviseUsersControllerをインストールできました。

作られたコントローラーを使えるようするためにroutes.rbを編集していきます。

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

これでコントローラーファイルが使えます。

他にもこんな記事があります!