来自引擎的Rails.root

san*_*ius 7 gem ruby-on-rails rails-engines

Rails.root从我的rails引擎访问时遇到了一些问题,我正在创建.我需要从主应用程序中获取yml配置文件.

处理发动机配置是否有"最佳实践"?

shi*_*ime 8

假设你有一个模块属性.

# lib/my_engine.rb

module MyEngine

  mattr_accessor :app_root

end
Run Code Online (Sandbox Code Playgroud)

然后你可以从初始化块加载它,如下所示:

# lib/my_engine/engine.rb

module MyEngine

  class Engine < Rails::Engine

    initializer "my_engine.load_app_root" do |app|

       MyEngine.app_root = app.root

    end

  end

end
Run Code Online (Sandbox Code Playgroud)