手順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
デバイスの導入完了