运行我的rspec测试时,我收到的错误与this post中的错误非常相似,但作者的解决方案对我不起作用。错误:
Mysql2::Error: Field 'target_id' doesn't have a default value: INSERT INTO `illegal_links` (`url`, `status`, `time_found`, `track_id`, `user_id`, `created_at`, `updated_at`) VALUES ('http://www.whatever.com', 'new', '2013-12-19 17:25:52.000000', 3212, 6980, '2017-09-27 15:40:38.121788', '2017-09-27 15:40:38.121788')
'非法链接'工厂与另外两个工厂一起调用目标工厂,但target_id是唯一一个抛出错误的工厂:
factory :illegal_link do
url "http://www.whatever.com"
status "new"
time_found "2013-12-19 17:25:52"
url_type "file"
track
target
user
我真正不明白的是删除对目标工厂的调用而不是使用'target_id 1'会得到相同的错误。 从控制台创建“目标”每个都获得一个新的id,因此它不是mysql中缺少的自动增量。
我正在运行rails 4.2.0,ruby 2.3.0,rspec-rails 3.6.0,factory_girl 4.8.0和mysql2 0.3.21
任何想法都会受到赞赏,谢谢。
编辑:这是illegal_links表上target_id的架构:
t.integer "target_id", limit: 4, null: false
add_index "illegal_links", ["target_id"], name: "target_id", using: :btree