Site icon シドニーで働くプログラマーのBlog(今はIT会社の経営者)

Rails 4.2 & Deviseの環境下でStrong_ParametersによるUnpermitted parametersエラー

Rails4からMass Assignment対策として、StrongParametersがRailsの中の標準ライブラリと組み込まれるようになりました。

Deviceを使ってユーザ認証を導入、独自フィールドを設置したのですが、StrongParametersでそのフィールドを許可の対象にしないとUnpermitted parametersとしてエラーがでます。
せっかく調べたので、その設定をメモしておきたいと思います。

やったこと

今回の環境
– Rails 4.2.1
– Devise 3.2.1

こういう時はドキュメントを読むのが一番ですね。しっかりStrongParametersについて書いてありますね。
http://www.rubydoc.info/github/plataformatec/devise/master/frames#Strong_Parameters

まずこの3つのアクションがあることを理解しておきます。

その後は各種アクションに対して、どのパラメータを許可するかを追加します。
ApplicationControllerに書くのもいいかもしれませんが、将来の拡張性などを考えるとモデルに対してコントローラーを作るのが汎用性が高そうです。

registrations_controllerをUsersフォルダ内に作成しました。

routes.rbに明示的にコントローラーを指定する

以上で追加したフィールドに情報を追加できるようになりました。

Exit mobile version