ご教示のほどよろしくお願いします。
事象
Rails g modelでテーブルを追加したところ
テスト時に以下の様なエラーが発生する様になりました。
実行コマンド
$ rake test
実行結果(抜粋)
22) Error: BattlesControllerTest#test_should_get_battle_losed_the_Tribal: ActiveRecord::StatementInvalid: SQLite3::ConstraintException: NOT NULL constraint failed: skill_bases.created_at: INSERT INTO "skill_bases" ("ActionId", "Name", "Description", "Timing") VALUES (1, '暗殺', '攻撃対象が王国である時、自身のATKが@s%増加する。', 1)
試したこと
こちらのサイト を自分なりに読んでみたところ「再作成してください」と読み取りましたので、実施してみましたが変わりありませんでした。
(再作成の方法としては、
rails d model SkillBase;
sqlite3 db/test.sqlite3 -cmd "drop table skill_bases";
sqlite3 db/development.sqlite3 -cmd "drop table skill_bases";
を実施後、下記model生成コマンドを実施しております。)
また、このmodelに関して、初回作成時にstringとすべきところを「String」(頭が大文字)で間違って作成しまった経緯もございます。
疑問点
migrateファイルにあるt.timestamps null: false
のカラムが影響しているように思えます。
また、logを参照したところ、このファイルだけcreated_atの指定が抜けておりますが、
どうしてこうなっているのかわかりません。
依頼内容
ご存知の方いましたら、
原因、対応方法を教えて頂けます様お願い致します。
エラーが発生しているファイルの情報
model生成時コマンド
$ rails g model SkillBase ActionId:integer Name:string Description:string Timing:integer
db/migrate/20160425001739_create_skill_bases.rb
class CreateSkillBases < ActiveRecord::Migration def change create_table :skill_bases do |t| t.integer :ActionId t.string :Name t.string :Description t.integer :Timing t.timestamps null: false end end end
test/fixtures/skill_bases.yml
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html one: ActionId: 1 Name: 暗殺 Description: 攻撃対象が王国である時、自身のATKが@s%増加する。 Timing: 1 two: ActionId: 2 Name: 汚染 Description: 攻撃対象が精霊である時、自身のATKが@s%増加する。 Timing: 1 # (以下省略)
log/test.log
Fixture Delete (0.1ms) DELETE FROM "skill_bases" Fixture Insert (0.1ms) INSERT INTO "skill_bases" ("ActionId", "Name", "Description", "Timing") VALUES (1, '暗殺', '攻撃対象が王国である時、自身のATKが@s%増加する。', 1) (0.4ms) rollback transaction
エラーが発生していないファイル
db/migrate/20160420234634_create_skill_infos.rb
class CreateSkillInfos < ActiveRecord::Migration def change create_table :skill_infos do |t| t.integer :SkillNo t.integer :ActionId t.integer :Rank t.integer :Effect t.timestamps null: false end end end
test/fixtures/skill_infos.yml
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html one: SkillNo: 1 ActionId: 1 Rank: 1 Effect: 30
log/test.log
Fixture Insert (0.1ms) INSERT INTO "skill_infos" ("SkillNo", "ActionId", "Rank", "created_at", "updated_at", "id") VALUES (1, 1, 1, '2016-04-15 11:44:02', '2016-04-15 11:44:02', 298486374)
バージョン情報
$ uname -a Darwin myhostname.local 15.4.0 Darwin Kernel Version 15.4.0: Fri Feb 26 22:08:05 PST 2016; root:xnu-3248.40.184~3/RELEASE_X86_64 x86_64 $ ruby -v ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0] $ rails -v Rails 4.2.5
他に不足している情報等ありましたら教えてください。
追記致します。

あなたの回答
tips
プレビュー