0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

RailsGem Devise利用について

Posted at

最近開発でDevise4.9.2を触れる機会があったので、備忘録を作成しました。

1. Deviseのインストール

GemfileにDeviseを追加

gem 'devise', '4.9.2'

以下のコマンドを実行してDeviseをインストール

bundle install

Deviseの初期設定を実施

rails generate devise:install

2. モデルの作成とマイグレーションの実行

Deviseを使用するモデルを作成
※ここでは、Userモデルを例にします。

rails generate devise User

※コマンドを実行すると、Userモデルとそれに関連するマイグレーションファイルが生成されます。生成されたマイグレーションファイルは、ユーザーの認証に必要な情報(メールアドレスやパスワードなど)をデータベースに保存するためのものです。

マイグレーションを実行して変更をデータベースに反映

rails db:migrate

3. Viewのカスタマイズ

Deviseは、ログインや登録などの一般的な認証ビューを提供しますが、これらをカスタマイズすることも可能です。以下のコマンドを実行すると、Deviseのビューファイルがアプリケーションのapp/viewsディレクトリにコピーされます。

rails generate devise:views

※このコマンドを実行すると、Deviseのビューファイルが生成され、これを自由にカスタマイズすることが可能になります。

画面名 パス View画面の格納場所
メール確認要求画面 /users/confirmation/new app/views/devise/confirmations/new.html.erb
メール確認指示 メール app/views/devise/mailer/confirmation_instructions.html.erb
メール変更通知 メール app/views/devise/mailer/email_changed.html.erb
パスワード変更通知 メール app/views/devise/mailer/password_change.html.erb
パスワードリセット指示 メール app/views/devise/mailer/reset_password_instructions.html.erb
アカウントロック解除指示 メール app/views/devise/mailer/unlock_instructions.html.erb
パスワードリセット要求画面 /users/password/new app/views/devise/passwords/new.html.erb
パスワードリセット画面 /users/password/edit app/views/devise/passwords/edit.html.erb
ユーザー登録画面 /users/sign_up app/views/devise/registrations/new.html.erb
ユーザー情報編集画面 /users/edit app/views/devise/registrations/edit.html.erb
ログイン画面 /users/sign_in app/views/devise/sessions/new.html.erb
共有エラーメッセージ部分テンプレート 任意の画面 app/views/devise/shared/_error_messages.html.erb
共有リンク部分テンプレート 任意の画面 app/views/devise/shared/_links.html.erb

4. Controllerのカスタマイズ

Deviseのコントローラーもカスタマイズ可能です。例えば、ユーザー登録後のリダイレクト先を変更したい場合などは、Deviseのコントローラーをオーバーライドする必要があります。

以下のコマンドで、Deviseのコントローラーを生成

rails generate devise:controllers users

※その後、生成されたコントローラーファイル (app/controllers/users/registrations_controller.rbなど)を編集することで、Deviseのデフォルトの挙動をカスタマイズできます。

5. ルーティングのカスタマイズ

Deviseのルーティングもカスタマイズ可能です。config/routes.rbファイルにて、Deviseのデフォルトルーティングを上書きすることが可能です。

以下に、Deviseのルーティングをカスタマイズする一例を示します。ここでは、ユーザーのサインアップとサインインのルートをカスタマイズしています。

devise_for :users, skip: [:sessions, :registrations]

as :user do
  get 'signin', to: 'devise/sessions#new', as: :new_user_session
  post 'signin', to: 'devise/sessions#create', as: :user_session
  delete 'signout', to: 'devise/sessions#destroy', as: :destroy_user_session
  get 'signup', to: 'devise/registrations#new', as: :new_user_registration
  post 'signup', to: 'devise/registrations#create', as: :user_registration
end

以上がDevise (4.9.2)のインストールからカスタマイズまでの基本的な手順です。具体的な実装はアプリケーションの要件によりますので、適宜調整してください。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?