deviseでログイン機能を実装したものの、データベースへ書き込めない問題
起きた問題
deviseにてユーザーのログイン機能やユーザー編集機能などを実装したが、ユーザー編集機能のページedit.html.erbにて入力した内容がうまくデータベースに反映されない。
具体的にいうとnameのカラムだけなぜかdbに反映されなかったので、調べてみた。
schema.rbを見てもちゃんとカラムが追加されている。。。
解決した方法とソース
まず、解決した方法は簡単で、application_controller.rbに以下のコードを追加するだけ。
application_controller.rb
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
# 「登録時(sign_up)」に許可するパラメータを追加
devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
# 「更新時(account_update)」に許可するパラメータを追加
devise_parameter_sanitizer.permit(:account_update, keys: [:name])
end
end
deviseではどうやらデフォルトでemail、password以外は許可しない設定になっているらしく、上記のようなコードを追加することで許可してあげないといけないようだった。
以下のURLはdeviseのGithub READMEから。
Author And Source
この問題について(deviseでログイン機能を実装したものの、データベースへ書き込めない問題), 我々は、より多くの情報をここで見つけました https://qiita.com/kobaryo04/items/5057860bd14911a9c6a5著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .