LoginSignup
0
0

More than 3 years have passed since last update.

railsでチェックボックス作成時にはまったエラー

Posted at

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のサンプルデータを投入するためのコードが再度実行され、それ以降のコードがデータがに反映されていなかったようだ。
サンプルユーザー投入用のコードを最後尾に移動したらえらーは発生しなくなった。

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