Светильники Rails и модель пространства имен - ActiveRecord :: Fixture :: FixtureError - PullRequest
0 голосов
/ 07 мая 2018

в приложении, которое я работаю над набором тестов, сделано с помощью Minitest и приспособлений, и я столкнулся с такой проблемой, я не могу решить, ни найти решение.

У меня есть модель Survey и приспособления для нее test/fixtures/surveys.yml:

one:
  user: admin
  name: Survey one
  description: This is survey one
  company: university
  review_type: 1

two:
  user: admin
  name: Survey two
  description: This is survey two
  company: university

также у меня есть пространство имен surveys и модель для вопроса - Surveys::Question (с полиморфной ассоциацией), которая имеет соответствующие приборы test/fixtures/surveys/questions.yml:

one:
  sentence: Survey question one?
  display_order: 1
  question_type: 0
  questionable: one (Survey)

two:
  sentence: Survey question two?
  display_order: 2
  question_type: 1
  questionable: one (Survey)

Пока все хорошо, все работает. Но всякий раз, когда я пытаюсь добавить другое определение questions к приборам, скажем:

three:
  sentence: Survey question three?
  display_order: 3
  question_type: 2
  questionable: one (Survey)

возникает ошибка: ActiveRecord::Fixture::FixtureError: table "surveys" has no column named "sentence"

Я совершенно не могу следить, почему вдруг ActiveRecord::Fixtures не может последовать.

Буду признателен за любые предложения по этому вопросу.

1 Ответ

0 голосов
/ 08 мая 2018

Убедитесь, что схема вашей базы данных не изменилась, и что вы не удалили или не переименовали столбец или таблицу в вашей базе данных. Всякий раз, когда вы меняете схему и запускаете миграцию, обязательно запустите ее перед запуском тестов:

rake db:test:prepare

Затем попробуйте запустить ваши тесты снова. Если вы получаете ту же ошибку, это означает, что в вашей тестовой базе данных отсутствует этот столбец. Проверьте свои миграции, чтобы убедиться.

Кроме того, как вы думаете, может быть, вам нужно three: в test/fixtures/surveys.yml?

...