2013-12-15 25 views
2

我正在嘗試爲rails引擎配置使用rails_config。它看起來像沒有自動加載在測試/虛擬應用程序,因爲它的路徑不在Rails.root下(Rails.root是test/dummy,並且此引擎的配置在config下(而不是測試/虛擬/配置))。如何在Rails引擎下集成rails_config

如何將rails_config用於我的引擎?

感謝和問候,

回答

3

這裏我的答案通過Settings.reload_from_files方法是:

module MyEngine 
    class Engine < ::Rails::Engine 
    def self.load_config 
     engine_config_dir = Pathname.new(File.expand_path('../../../config', __FILE__)) 
     Settings.reload_from_files(
      (engine_config_dir + 'settings.yml').to_s, 
      (engine_config_dir + "settings/#{Rails.env}.yml").to_s 
    ) 
    end 

    initializer "my_engine" do 
     Engine::load_config 
     ... 
    end 
    end 
end 
+0

這個解決方案對我來說非常完美。謝謝! – Moh

1

如果同時在使用rails_config Rails應用程序和軌道的發動機,你應該使用Settings.add_source !(...)而不是Settings.reload_from_files(...)作爲最後一個重寫全局設置對象。

initializer "my_engine.settings" do 
    Settings.add_source!(
    MyEngine::Engine.root.join('config', 'settings.yml').to_s 
) 
    Settings.reload! 
end 
+0

感謝您的更好的答案!順便說一句,軌道應用程序可以重寫引擎配置您的方法? –