Deviseをカスタマイズして、テーブルに追加したカラムをupdateできるようにするためにしなければいけないこと @TECH CAMP #25
どうも、とだです。
プログラミングスクールは最終課題提出、会社では昇進試験、プライベートはTOEIC L&R受験と大忙しでした。疲れた…。
てな訳でしばらくお休みしてしまってました。今回も小ネタで勘弁してください。最近多いdeviseをカスタマイズするお話です。
今私はフリマアプリを製作していますが、それに限らず何かユーザー登録させるWebアプリケーションで、ユーザーに登録させたデータを変更したい、更新したいということがあると思います。そういった操作を許可するために必要なdeviseのカスタマイズについて今回はアウトプットしようと思います。
結論、以下の記述をapplication_controllerのconfigure_permitted_parametersメソッド内に以下の記述をすればOKです。
devise_parameter_sanitizer.permit(:account_update, keys:[:ここに追加したカラム名を入れる]
具体例をあげると以下のようになります。
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname, :first_name, :last_name, :first_name_kana, :last_name_kana, :birthday])
devise_parameter_sanitizer.permit(:account_update, keys: [:nickname, :first_name, :last_name, :first_name_kana, :last_name_kana, :birthday])
end
サインアップ(新規登録)させるときに求めた追加のカラムと同じように、アカウント情報をアップデートさせる時に許可をさせればいいわけですね。
知らないと「なんでupdateできないんだ?」と沼にはまりやすいと思います。私がそうでした。
今回参考にした記事は下のリンク先の記事です。とても助けられました、ありがとうございます。
とりあえず今回は簡単に。書き溜めているのもあるので、近日公開したいと思います!