我正在嘗試爲rails引擎配置使用rails_config。它看起來像沒有自動加載在測試/虛擬應用程序,因爲它的路徑不在Rails.root下(Rails.root是test/dummy,並且此引擎的配置在config下(而不是測試/虛擬/配置))。如何在Rails引擎下集成rails_config
如何將rails_config用於我的引擎?
感謝和問候,
我正在嘗試爲rails引擎配置使用rails_config。它看起來像沒有自動加載在測試/虛擬應用程序,因爲它的路徑不在Rails.root下(Rails.root是test/dummy,並且此引擎的配置在config下(而不是測試/虛擬/配置))。如何在Rails引擎下集成rails_config
如何將rails_config用於我的引擎?
感謝和問候,
這裏我的答案通過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
如果同時在使用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
感謝您的更好的答案!順便說一句,軌道應用程序可以重寫引擎配置您的方法? –
這個解決方案對我來說非常完美。謝謝! – Moh