15
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】devise_token_authで新規ユーザー登録時にUnpermitted parameters: が出たときの対処法

Posted at

はじめに

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ですね。

おわりに

最後まで読んで頂きありがとうございました:bow_tone1:

どなたかの参考になれば幸いです:relaxed:

15
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?