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.

Ruby on RailsでDeviseを導入する手順

Posted at

概要

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

users_controller.rb
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]
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?