railsでアプリを作成時に下記のエラーが出た
ActiveRecord::NotNullViolation: Mysql2::Error: Field ‘place’ doesn’t have a default value: INSERT INTO 'categories'
検索機能を実装しようとした際に出たエラーである。
中間テーブルを作成し、チェックボックス実装のためにseedファイルに初期データを記述し、rails db:seedでDBにデータを投入しようとしたところ出現した。
categoryテーブルに「kind」と「place」の2個の値を設定し、それぞれにnull: false
を記述していたのが原因だった。(下記参考)
https://wa3.i-3-i.info/word16591.html
null: false
を削除し、下記のコマンド(DBのリセットと再投入)を実行したところ解決した
$./bin/rails db:migrate:reset
追記
下記のエラーも同時に発生していた。
ActiveRecord::RecordInvalid: バリデーションに失敗しました: メールアドレスはすでに存在します。
seedファイルに書いたuserのサンプルデータを投入するためのコードが再度実行され、それ以降のコードがデータがに反映されていなかったようだ。
サンプルユーザー投入用のコードを最後尾に移動したらえらーは発生しなくなった。