Мой генератор скаффолдов перестал работать после того, как мы обновили заводскую девочку. Вот почему случилось. Во-первых, мой конфигурационный файл пытается установить определенные значения по умолчанию для генерации скаффолдов, например:
class Application < Rails::Application
config.app_generators do |g|
g.template_engine 'mizugumo:haml'
g.scaffold_controller 'mizugumo:scaffold_controller'
g.assets 'mizugumo:js_assets'
g.test_framework :lrdspec, :fixture => true
g.fixture_replacement 'lrdspec:factory'
g.fallbacks['mizugumo:haml'] = :haml
g.fallbacks[:lrdspec] = :rspec
end
...
end
Где: lrdspec - имя генератора спецификаций скаффолдов моей компании. Тем не менее, самый последний factory_girl_rails в своем инициализаторе грубо заставляет config.generators.test_framework к 'test_unit' , если ваша тестовая среда не является в точности ": rspec":
module FactoryGirl
class Railtie < Rails::Railtie
initializer "factory_girl.set_fixture_replacement" do
generators = config.respond_to?(:app_generators) ? config.app_generators : config.generators
if generators.options[:rails][:test_framework] == :rspec
generators.fixture_replacement :factory_girl, :dir => 'spec/factories'
else
generators.test_framework :test_unit, :fixture => false, :fixture_replacement => :factory_girl
end
end
То, что я пытаюсь выяснить, как это сделать, - это сгенерировать мой собственный инициализатор, который запускается после инициализатора FG, чтобы установить test_framework обратно в: lrdspec, как я хочу.
Я пытался добавить свой собственный raltie в config / initializer или добавить блок в config.after_initialize в config / application.rb и ряде других подходов, но пока не нашел решения. (Мои знания о последовательности инициализации Rails должны быть немного глубже, чем «я думаю).
Спасибо!