##Deviseで生年月日登録でエラーが出た。
ユーザー登録時に生年月日も登録できるようにしたところ、ActiveRecord::NotNullViolation in Devise::RegistrationsController#create
のエラーが出て散々悩まされた。
##Deviseの仕様
どうやらDeviseの仕様として、デフォルトで受け付けているデータ以外は「安全なデータである」という宣言をApplicationControllerでする必要があるとのこと。
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up,
keys: [:birth_day])
end
end
上記のようにconfigure_permitted_parameters
に登録時(sign_up)に受けつけるデータとして:birth_day
カラムを追加することによって生年月日の登録ができるようになった。
##まとめ
参考記事を読みながら「確かそんなんあったなー」っと振り返ることができた。結局すぐに忘れちゃうから、困ったことを残しておくことが重要なんだと再確認できた。
##参考
https://teratail.com/questions/235508
さいごに
プログラミングの初学者です。その日に学んだことを学習の一環としてアウトプットしています。より深く学習していきたいと考えておりますので、内容に誤りがございまいたらご指摘等いただけますと幸いです。
参考図書:パーフェクト Ruby on Rails【増補改訂版】すがわらまさのり/前島真一/橋立友宏/後藤優一/五十嵐邦明