deviseメモ
deviseとはアプリケーションのログイン・ログアウト等、またユーザの作成や更新を簡易に実装できるようにしてくれる便利なgem。
ただ用法をすぐに忘れるので、ここに今回作業した内容をメモしておく。
deviseをインストールする
rails g devise:install
deviseを実装するモデルを作成する
rails g devise user
deviseで使用するモデルは、rails g devise <モデル名>コマンドで作成する。(今回はUserを利用する。)
マイグレーションファイルを編集する
class DeviseCreateUsers < ActiveRecord::Migration[5.0] def change create_table :users do |t| ## Database authenticatable t.string :name, null: false, unique: true t.string :email, null: false, default: "" t.string :encrypted_password, null: false, default: "" ~~省略~~
マイグレーションを実行する
bundle exec rake db:migrate
deviseのビューファイルを追加する
rails g devise:views
未ログインユーザーの操作を防ぐための処理を追記
作業ファイル:application_controller.rb
before_action :authenticate_user!
ユーザー登録時に名前(nameカラム)も登録できるようにする
作業ファイル:application_controller.rb
class ApplicationController < ActionController::Base protect_from_forgery with: :exception before_action :authenticate_user! before_action :configure_permitted_parameters, if: :devise_controller? protected def configure_permitted_parameters devise_parameter_sanitizer.permit(:sign_up, keys: [:name]) end end
ポイントは2点
-
deviseでは初期状態でサインアップ時にメールアドレスとパスワードのみを受け取るようにストロングパラメーターが設定されている。しかし追加したキーのパラメーターは許可されていない。
-
追加のパラメーターを許可したい場合は、application_controller.rbにおいてbefore_actionにconfigure_permitted_parametersメソッドを設定する。