はじめに
gem devise_token_authを使っていて、新規ユーザー登録時に以下エラーが出たときの対処法を残します。
Unpermitted parameters: 保存されて欲しいカラム名
自分でUserテーブルにカラムを追加して、保存しようとしたら
発生する内容です。
今回、自分の場合は:age
と:gender
を追加しようとしたところ発生しました。(以下参照)
Unpermitted parameters: :age, :gender
これを解決していきます。
環境
OS: macOS Catalina 10.15.1
zsh: 5.7.1
Ruby: 2.6.5
Rails: 6.0.2.1
結論:registrations_controller
に追記
registrations_controller
class Api::V1::Auth::RegistrationsController < DeviseTokenAuth::RegistrationsController
private
def sign_up_params
# ここに :age, :genderを追記
params.permit(:name, :email, :age, :gender, :password, :password_confirmation)
end
def account_update_params
params.permit(:name, :email)
end
end
※反映するにはrails server
再起動が必要です。
理由
Strong Parameterではじかれてしまっているのが問題でした。
sign_up_params
の中に追記することで、新規ユーザー登録のときだけ許可されるようになります。
**こいつも許可してあげてよ!**という指定をすればOKですね。
おわりに
最後まで読んで頂きありがとうございました
どなたかの参考になれば幸いです