【发布时间】:2012-07-23 15:28:48
【问题描述】:
我在从我正在创建的 rails 引擎访问 Rails.root 时遇到问题。我需要从主应用程序中获取一个 yml 配置文件。
是否有任何“最佳做法”来处理您的引擎配置?
【问题讨论】:
-
你试过
Rails.application.root吗? -
是的,这也是 nil。
标签: ruby-on-rails gem rails-engines
我在从我正在创建的 rails 引擎访问 Rails.root 时遇到问题。我需要从主应用程序中获取一个 yml 配置文件。
是否有任何“最佳做法”来处理您的引擎配置?
【问题讨论】:
Rails.application.root吗?
标签: ruby-on-rails gem rails-engines
假设你有一个模块属性。
# lib/my_engine.rb
module MyEngine
mattr_accessor :app_root
end
然后你可以像这样从初始化块加载它:
# 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
【讨论】:
initializer 而不是 initialize.. (edgeapi.rubyonrails.org/classes/Rails/Engine.html)
改为使用Rails.root 使用:MyEngine::Engine.root ;D
【讨论】: