ЯoomeR

プログラミング~実装とエラー解決と、時々、AI~

deviseでニックネームなどのカラムを追加する方法

Step1 マイグレーションファイルにカラムを追加する

Step2 application.controllerを編集する

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

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname])
  end
end

configure_permitted_parametersとは

公式ドキュメントで使用されているメソッド名。

別の名前でも問題なく動作する。

カラムの追加について

devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname, :profile, :age])

nickname、profileのように、追加したカラムをここに記述すればOK。

if: :devise_controller?はなぜ必要か

この記述が無いと、すべてのコントローラーのアクションで呼び出されることになる。

トップページを開くだけでも「nicknameのキーが...云々」という処理が行われるため、エラーが発生してしまう。