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:Gemの導入

gemfileの最終行に追加

gemfile
gem 'devise'

bundle installを実行
rails g devise:installを実行

手順2:モデルの作成

rails g devise モデル名でモデルを作成
今回はuserモデルを作成するのでrails g devise userとする。
その後rails db:migrateでマイグレーションを実行する。

手順3:テーブルの作成

マイグレーションファイルにはデフォルトでemailやパスワードが入っているのでそのほかの項目を追加していく。

rails g migration Addカラム名To追加先テーブル名 追加するカラム型:型

でテーブルにカラムを追加することができる。
今回は、[profile:text型]、[occupation:text型]、[position:text型] の3つのカラムを追加する。

ターミナル
rails g migration AddProfileToUsers profile:text
rails g migration AddOccupationToUsers occupation:text
rails g migration AddPositionToUsers position:text

マイグレーション前であれば、直接マイグレーションファイルに記述を追記してマイグレーションを実行することでカラムを追加することもできる。

***********_devise_create_users.rb
      # 省略
      t.string :email,              null: false, default: ""
      t.string :encrypted_password, null: false, default: ""
      t.string :name,               null: false
      t.text   :profile,            null: false
      t.text   :occupation,         null: false
      t.text   :position,           null: false

記述完了後rails db:migrateでマイグレーションを実行する。

手順4:viewファイルの作成

rails g devise:viewsでdevise用のビューファイルを作成する。

手順5:バリデーションの設定

userモデル
  validates :profile,    presence: true
  validates :profile,    presence: true
  validates :occupation, presence: true
  validates :position,   presence: true

手順6:パラメーターが受け取れるように記述

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

  private
  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:name, :profile, :occupation, :position])
  end
end

デバイスの導入完了

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?