Фабрика Девушка пропускает методы со схемой возиться? - PullRequest
0 голосов
/ 20 декабря 2011

Я создал стандартный класс Active :: Record с полем user_id, и требования изменились. Оказывается, мне нужно было убрать столбец user_id и вместо него поставить столбец email. Я решил, что я просто вручную заменил поле в файле миграции, а затем сделал бы быстрое 'rake db: migrate down / up' для этой версии, чтобы выполнить обновление. Я даже закончил тем, что обновил db / schema.rb.

Без игры в кости:

 Failure/Error: ss = Factory(:model)
 undefined method `email=' for #<Model:0xb2cc288>

Я могу использовать методы получения / установки электронной почты в консоли или в сервисной штрафе - но заводская девушка, похоже, не понимает подсказки. Кэширование списка методов где-нибудь? (Подсказка: таблица MySQL тоже выглядит хорошо)

1 Ответ

0 голосов
/ 20 декабря 2011

Во-первых, в будущем постарайтесь не изменять существующие файлы миграции.Вы испортите больше, чем просто FactoryGirl, а именно испортите настройки своих товарищей по команде.Требования меняются, и это нормально, вы просто делаете новую миграцию, которая удаляет столбец user_id и добавляет столбец электронной почты.Таким образом, эволюция модели данных будет записана в миграциях.

Однако, для вашей конкретной проблемы вы, вероятно, захотите запустить rake db: test: prepare или, если это не сработает, удалитьполностью проверьте вашу тестовую базу данных и перестройте ее.

...