記事概要
Ruby on Railsのdevise(Gem)について、まとめる
前提
- Ruby on Railsでアプリケーションを作成している
deviseとは
ユーザー管理機能を簡単に実装するためのGem
ビューファイル
deviseに用意されたビューファイルは、編集できない
編集したい場合は、app/views
配下にビューファイルをコピーする
コントローラー
deviseに用意されたコントローラーは、編集できない
devise_parameter_sanitizer
メソッドを使用することで、パラメーターの取得を可能にする
usersコントローラーを作成することで、マイページなどを作成することが可能になる
※usersコントローラーはdeviseに用意されたコントローラーではないため、編集できる
Gemのインストール手順
Gemfileの記述
手順(基本設定)
- deviseの設定ファイルを作成するため、下記コマンドを実行する
% rails g devise:install
手順(モデル作成)
- Userモデルを作成するため、下記コマンドを実行する
% rails g devise user
- routes.rbに、下記ルーティングが自動的に追記されたことを確認する
Rails.application.routes.draw do devise_for :users # 省略 end
devise_for
は、ユーザー機能に必要な複数のルーティングを一度に生成してくれるdeviseのメソッド
手順(テーブル作成)
-
db/migrate/yyyymmddhhmmss_devise_create_users.rb
が作成されていることを確認する - メールアドレス・パスワードなどの基本的な項目は、既にカラムが用意されていることを確認する
- テーブルを編集し、マイグレーションを実行する
こちらを参照する - サインアップ画面やサインイン画面などが、自動生成される
手順(ビューファイル作成)
- ビューファイルを編集するため、deviseに用意されたビューファイルをコピーして
app/views
の配下に配置する% rails g devise:views
-
app/view/device
配下にビューファイルが生成される画面 ビューファイル サインアップ画面 app/views/devise/registrations/new.html.erb サインイン画面 app/views/devise/sessions/new.html.erb
手順(ストロングパラメーター追加)
-
application_controller.rbに、devise_parameter_sanitizerメソッドを追加する
class ApplicationController < ActionController::Base # devise_controller = Gemのdeviseに関するコントローラー(VSCodeで目視できないが、devise_controller.rbみたいなコントローラーが複数ある)の処理 # deviseに関するコントローラーで処理を行う場合、メソッド[configure_permitted_parameters]を事前実行する before_action :configure_permitted_parameters, if: :devise_controller? # 省略 private def configure_permitted_parameters # 指定した処理を実行する場合、指定したキーはパラメーターとして使用できる devise_parameter_sanitizer.permit(:deviseの処理名, keys: [:許可するキー]) end end
手順(コントローラー作成)
- usersコントローラーを作成するため、下記コマンドを実行する
% rails g controller users
-
app/controllers/users_controller.rb
が作成されたことを確認する
Ruby on Railsまとめ