Как заменить светильники на фабрики, использующие rails3-генераторы? - PullRequest
1 голос
/ 23 февраля 2011

Я пытаюсь заменить генерацию приборов фабриками, использующими rails3-генераторы:

https://github.com/indirect/rails3-generators#readme

Этот камень включен в мой Gemfile и установлен:

# Gemfile
gem 'rails3-generators', :group => :development

Я добавил следующее в application.rb:

# application.rb
config.generators do |g|
  g.stylesheets false
  g.fixture_replacement :factory_girl
end

Тем не менее, 'rails g model Insect' все еще генерирует приспособления ('insects.yml').Работает ли это для других, использующих Rails 3.0.4 и rails3-генераторы 0.17.4?

'rails g' показывает новые доступные генераторы (такие как Authlogic и Koala), но в 'rails g model' все еще перечислены приборыи не относится к фабрикам.

Что еще я должен добавить, чтобы заставить это работать?Спасибо.

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

Edit2 : Я попробовал еще раз с тестовым проектом и получил тот же результат: светильники вместо фабрик.Если бы кто-нибудь мог подтвердить, работает ли он для них с Rails 3.0.4 и rails3-генераторами 0.17.4, это тоже было бы полезно, потому что это означало бы, что я делаю что-то не так с моими проектами.

Edit3 : Это работает, если я запускаю 'rails g model Insect -r factory_girl'.Я думал, что конфигурация генератора в application.rb должна была позаботиться об этом, так что это, кажется, источник проблемы.

1 Ответ

2 голосов
/ 24 февраля 2011

Осматривая, я нашел следующее, что может помочь:

  1. Попробуйте указать опцию каталога для фабрик factory_girl:

    config.generators do |g|
      g.stylesheets false
      g.fixture_replacement :factory_girl, :dir => "spec/factories" # or test/factories, as the case may be
    end
    
  2. Если вы используете Test::Unit, попробуйте следующее:

    config.generators do |g|
      g.stylesheets false
      g.test_framework  :test_unit, :fixture_replacement => :factory_girl
    end
    

В обоих случаях вам все еще понадобится камень rails3-generators, хотя есть толчокчтобы добавить эту функциональность в factory_girl_rails.

Эта ошибка Rails указывает на то, что в какой-то момент код g.fixture_replacement может работать неправильно.Возможно, тест в 3.0.5 в порядке.:)

...