初めまして。
プログラミング学習初心者で、ログイン機能実装した際に
新規ログインで
ActiveRecord::NotNullViolation in Customers::RegistrationsController#create
とエラーが表示されてしまい、その解決方法です。
やること
今回は、deviseで最初にカラムを追加してdb:midrateしてしまった後に
実は null: false ではなかったときの対処法です。
なんでもかんでも null: false にしてしまっていましたが、
createするときに空の状態で保存されるのを防ぐためのものと認識せず記載していました。
制約を外す
migrate後に null:false を複数訂正したいときはターミナルに
rails g migration ChangeColumnToNull
出来上がったマイグレーションファイルがdb/migrateにあるので、
#customersデーブルのカラム、trainersテーブルのカラムのnot null制約を外す
def up
#Not Null制約を外す
change_column_null :customers, :name, true
change_column_null :customers, :age, true
change_column_null :trainers, :name, true
:
:
end
def down
change_column_null :customers, :name, false
change_column_null :customers, :age, false
change_column_null :trainers, :name, false
:
:
end
とし、ターミナルで
rails db:migrate
とすると null: false がなくなります。
以上となります。
違った点がありましたらご指摘お願い致します。