공장 소녀를 업데이트 한 후 내 발판 생성기가 작동을 멈췄습니다. 이유가 여기에 있습니다. 첫째, 내 설정 파일과 같이, 비계 생성을 위해 특정 기본값을 설정하려고 :레일 3.1 : 어떻게 보석 이니셜 라이저를 실행하는 이니셜 라이저를 추가합니까?
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, 그것의 초기화에서, 무례 힘 'test_unit'에 config.generators.test_framework 테스트 프레임 워크를 정확히하지 않는 한 "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으로 설정하는 것입니다.
config/initializer에 내 레일 티를 떨어 뜨리거나 config/application.rb의 config.after_initialize에 블록을 추가하고 다른 방법을 시도했지만 해결책을 찾지 못했습니다. (Rails의 초기화 시퀀스에 대한 지식은 생각보다 조금 더 깊어 야합니다.)
감사합니다.
당신이 http://guides.rubyonrails.org/initialization 봤어 :
그래서 수정은, 내 자신의 보석에 대한 구성 Railtie의 발판 발전기를 제공하는 일을이 드롭하는 것이 었습니다. html (또는 레일 2 용 http://railsguts.com/initialization.html)? – coreyward예 .. (railties-3.1.1/lib/rails/initializable.rb의 코드는 제가 지난 몇 시간 동안 읽고 있던 것들입니다. 도움이 되긴하지만 어느 소스에서) 생성 된 이니셜 라이저의 * 순서 *에 영향을 미치는 방법을 참조하십시오. – IdahoEv
초기화 프로그램 (예 : config/initializers/foobar.rb)은 "사전 순"순서로로드됩니다. 파일에 대한 실제 그립, 안돼? – coreyward