yuta_eng_prg’s diary

筆者がプログラミング学習の内容を綴るだけのブログです。

deviseの導入(ruby on rails)

deviseの導入を確認します。まずはGemfileに以下のコードを記述します。

gem 'devise'

次にターミナルで、

% bundle install

インストールし、

% rails s

ローカルサーバーを起動して、変更を反映させます。

% rails g devise:install

deviseの設定ファイルを作成します。

ユーザーモデルを作成する場合、以下のコマンドで

% rails g devise user

ユーザーモデルのファイル等を作成します。

ルーティングに、


Rails.application.routes.draw do
 
devise_for :users
 
end

赤文字のように記述することで、deviseで設定されているルーティングが反映されます。

また、マイグレーションファイルを

% rails db:migrate

マイグレートすることで、deviseで設定されたテーブルが作成されます。

また、

% rails g devise:views

上記のコマンドを実行することでdeviseで設定されたビューファイルが作成されます。

また、

deviseでログイン機能を実装した場合のパラメーターの受け取り方は通常とは異なります。

ユーザー情報に関するパラメーターを制限するストロングパラメーターは、deviseのGem内に記述されているため、編集することはできません。

そこで、deviseが提供しているdevise_parameter_sanitizerメソッドというメソッドを使用する必要があります。

application_controller.rbファイルに

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

private
def configure_permitted_parameters
# ログインの場合
devise_parameter_sanitizer.permit(:sign_in, keys: [:nickname])
# 新規登録の場合
devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname])
# 情報の更新の場合
devise_parameter_sanitizer.permit(:account_update, keys: [:nickname])
end
end

上記のように記述することで、deviseにストロングパラメーターを設定できます。