概要
Ruby on RailsでDeviseを導入したので、その手順をメモします。
手順
・gemfileに追記
gem 'devise'
・bundle install
rails sで再起動すること
・rails g devise:install
→設定関連に使用するファイルを自動で生成
・rails g devise user
→routes.rbに devise_for :users が自動追加される、db/migrateも生成
・rails db:migrate
rails sで再起動すること
・rails g devise:views
備忘録
・以下の項目に関しては、モデルで新たにバリデーションを実装する必要はない(Deviseにデフォルトでバリデーションが備わっているため)。しかし、単体テストコードを書き、バリデーションが働いているかの検証は必要。
・メールアドレスが必須であること。
・メールアドレスが一意性であること。
・メールアドレスは、@を含む必要があること。
・パスワードが必須であること。
・パスワードは、6文字以上での入力が必須であること。
・パスワードとパスワード(確認)は、値の一致が必須であること。
・Deviseによるカスタムコントローラの生成は不要(rails g devise:controllersのコマンドは、必須機能実装においては入力不要)。
・選択肢を設けるものはActive Hashを利用するとよい
・ユーザープロフィールは、ActiveStorageとimagemagickを利用する
・アソシエーションを記述(has_one_attached :image)
・ストロングパラメーターにimageを忘れずに
・image_tagを利用して表示
・ユーザーページ(show)が必要になるのでusers controllerも作成(index, newの為だけだったら不要)
・ URL直うち禁止・ログアウトユーザーのアクセスはログイン画面へ・ユーザー本人以外は編集ボタン非表示 はそれぞれ以下を追記しておけばOK
class UsersController < ApplicationController
before_action :authenticate_user!, except: [:show]
before_action :set_user, only: [:show, :edit, :update, :destroy]
before_action :prevent_url, only: [:edit, :destroy]