Rails 4, RSpec, MySQL2 ошибка по умолчанию

При выполнении теста rspec я получаю сообщение об ошибке, очень похожее на сообщение в этом посте, но авторское решение не работает для меня. Ошибка:

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' возникает та же ошибка. Создание "целей" из консоли каждый получает новый идентификатор, так что это не пропущенное автоматическое увеличение в MySQL.

Я использую rails 4.2.0, ruby ​​2.3.0, rspec-rails 3.6.0, factory_girl 4.8.0 и mysql2 0.3.21

Любые идеи будут оценены, спасибо.

Изменить: вот схема для target_id в таблицах нелегальных ссылок:

t.integer  "target_id",      limit: 4,          null: false
add_index "illegal_links", ["target_id"], name: "target_id", using: :btree

0 ответов

Другие вопросы по тегам