Ruby on Rails の Gemである deviseを利用し、
Userモデルに nameカラムを追加する方法。
deviseのインストール
1️⃣ Gemfileに gem 'devise' を追記
2️⃣ bundle install コマンドを実行
3️⃣ rails g devise:install コマンドを実行
deviseの Userに nameを追加
1️⃣ rails g devise User コマンドを実行
2️⃣ deviseのコントローラー自体は編集することができない。
そのため、application_controller.rbを以下のように記載
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
end
end
コード解説
✴️ before_action
アクションを実行する前に行う処理
✴️ if: :devise_controller?
if: は、before_action 等の節で ifが必要な場合の書き方
:devise_controller? は、devise Gemによって提供されているメソッド
✴️ protected
private以下はクラス内からしかアクセスできない。
レシーバを指定して呼び出すことができない。
protected以下はクラス内とサブクラス内からアクセスできる。
レシーバを指定して呼び出すことができる。
✴️ devise_parameter_sanitizer.permit
deviseが提供するメソッド。このメソッドを使って、devise のビューからコントローラーへ送信されるパラメーターをフィルタリングする。
✴️ :sign_up
deviseのアクション名
✴️ keys: [:name]
キー:[:新たに許可するキー]
参考記事
https://qiita.com/nagao-koyanagi/items/0607cbbb3af812c60141
https://qiita.com/kaito121855/items/e1a80da8557258c497dc