Спецификация огурца не может видеть столбец, добавленный последней миграцией - PullRequest
2 голосов
/ 17 марта 2012

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

      unknown attribute: is_active (ActiveRecord::UnknownAttributeError)

, которая возникает в результате этой строки:

    city = City.find_or_create_by_name_and_state(:name => attributes['City'], :state => attributes['State'], :icao_code => attributes['ICAO'], :display_order => attributes['Order'], :is_active => attributes['Active'], :current_temperature => attributes['Current'])

Странно то, что ранее сегодня я добавил столбецdisplay_order, который работает нормально.

Если я удаляю назначение: is_active из шага и добавляю "put city.attributes" после назначения города, is_active равен , а не , указанному среди атрибутов,Но если я сделаю «City.new.attributes» из консоли rails, атрибут is_active будет .

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

Есть какие-нибудь идеи, как получить огурец для просмотра атрибута?

Спасибо,

Фил

1 Ответ

2 голосов
/ 17 марта 2012
rake db:migrate
rake db:test:prepare

Тестовая среда не использует ту же базу данных, которая использовалась при разработке.Вы должны выполнить команду rake db: test: prepare, чтобы воссоздавать ее после каждой выполненной вами миграции, которая фактически изменяет структуру базы данных.

Эта команда просто создает тестовую базу данных на основе файла schema.rbStructure.sql, это зависит от конфигураций проекта), которые создаются / обновляются при запуске миграции.

Проверьте информацию из направляющих рельсов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...