0
0

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.

devise導入手順まとめ

Posted at

導入手順

  1. Gemfileにライブラリのインストール
  2. deviseの設定ファイルのインストール
  3. モデルの作成
  4. テーブルの作成
  5. deviseのviewの作成
    6. ストロングパラメーターについて

1. Gemfileにライブラリのインストール

gemfileに以下を追加する。

gem 'devise'

ターミナルで自分のアプリケーションのディレクトリで以下を実行する。

bundle install

2. deviseの設定ファイルのインストール

ターミナルで以下を実行する。

rails g devise:install

3. モデルの作成

ターミナルで以下を実行する。

rails g devise モデル名

ルーティングが自動追加される。

config/routes.rb
Rails.application.routes.draw do
  devise_for :モデル名s
end

4. テーブルの作成

モデルを作成するとマイグレーションファイルが作成されている
必要なテーブルを追加する。

db/migrate/20XXXXXXXXX_devise_create_モデル名s.rb
class DeviseCreateUsers < ActiveRecord::Migration[6.0]
 def change
   create_table :モデル名s do |t|
     ## Database authenticatable
     t.string :email,              null: false, default: ""
     t.string :encrypted_password, null: false, default: ""
     t.string :name,               null: false

     ## Recoverable
     t.string   :reset_password_token
     t.datetime :reset_password_sent_at

     ## Rememberable
     t.datetime :remember_created_at

     # 省略

     t.timestamps null: false
   end

   add_index :モデル名s, :email,                unique: true
   add_index :モデル名s, :reset_password_token, unique: true
   # add_index :モデル名s, :confirmation_token,   unique: true
   # add_index :モデル名s, :unlock_token,         unique: true
 end
end

※例として、name, null: falseは追加しました。
テーブルの内容を追加して以下を実行する。

rails db:migrate

5.deviseのviewの作成

ターミナルで以下を実行する。

rails g devise:views

app/views配下にdevise専用のviewを配置する。

6.deviseのストロングパラメーターについて

viewでサインアップ時に入力した内容はパラメーターとしてサーバーに送信される。
deviseを使用しない通常のリクエストは、悪意のあるパラメータを受け取らないように、コントローラーにストロングパラメーターを記述し、受け取るパラメーターを制限している。deviseも同様だが、gem内にコントローラーが記述されているため、コントローラーの編集ができないようになっている。
deviseでは、application_controller.rbdevise_parameter_sanitizerメソッドを利用してパラメーターを受け取ることができるようになる。
application_controller.rbは全てのコントローラーが継承しているファイルのことで、通常のコントローラーに加えて、deviseのコントローラーも継承している。
deviseのコントローラーはgem内に記述してあるため編集ができないが、application_controller.rbに処理を記述することでパラメーターを読み込ませることができるようになる。

application_controller.rb
class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?

  private
  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:deviseの処理名, keys: [:パラメーター名])
  end
end

if: :devise_controller?の部分はdeviseの処理(sign_up, sign_in, :account_update)のみを判断し処理を実行する。

0
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?