Deviseのユーザモデルにカスタムフィールドを追加
データベースをmigrateしたら終わりかと思ったら更新フォームの動作でハマります。
まずは、コントローラの生成をします。
$ devise:controllers users -c=registrations
生成時にもメッセージがでますが、ルートも明記してあげます。
config/routes.rb
devise_for :users, controllers: {
registrations: "users/registrations"
}
生成されたコントローラに以下のようにbefore_filterを定義したらOKです。
app/controllers/users/registrations_controller.rb
before_filter :configure_account_update_params, only: [:update]
def configure_account_update_params
devise_parameter_sanitizer.for(:account_update) << :name
end
configure_.. メソッドの手前に「 You can put the params you want to permit in the empty array.」って書いてあるから、このメソッドだけ宣言(オーバライド)したらいけるのかな、と思い込んでしまったところが落とし穴でした。メソッド名は何でも良いので、before_filterに登録するところが大事です!
参考URL
この記事は役に立ちましたか?
- EnglishWorm.com
- SinglesFan.com
- LmLab.net
- サイトマップ
- 運営者について