LoginSignup
0
0

More than 3 years have passed since last update.

初学者のプログラミング ActiveRecord::NotNullViolation in Devise::RegistrationsController#create

Posted at

Deviseで生年月日登録でエラーが出た。

ユーザー登録時に生年月日も登録できるようにしたところ、ActiveRecord::NotNullViolation in Devise::RegistrationsController#createのエラーが出て散々悩まされた。

Deviseの仕様

どうやらDeviseの仕様として、デフォルトで受け付けているデータ以外は「安全なデータである」という宣言をApplicationControllerでする必要があるとのこと。

app/controllers/ApplicationController.rb
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カラムを追加することによって生年月日の登録ができるようになった。

まとめ

参考記事を読みながら「確かそんなんあったなー」っと振り返ることができた。結局すぐに忘れちゃうから、困ったことを残しておくことが重要なんだと再確認できた。

参考

さいごに

プログラミングの初学者です。その日に学んだことを学習の一環としてアウトプットしています。より深く学習していきたいと考えておりますので、内容に誤りがございまいたらご指摘等いただけますと幸いです。

参考図書:パーフェクト Ruby on Rails【増補改訂版】すがわらまさのり/前島真一/橋立友宏/後藤優一/五十嵐邦明

0
0
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
0
0