Ruby on rails 是否可以从rails引擎配置中获取database.yml文件?
我正在创建一个rails可装载引擎,需要从lib/MyEngine/engine.rb文件中使用该引擎的应用程序中检索database.yml文件。首先,这可能吗?如果是这样,你将如何实现这一点 我尝试在engine.rb文件中使用“Rails.root”,但它返回nil 在这方面的任何帮助都将是非常好的,并提前感谢您。这就足够了:Ruby on rails 是否可以从rails引擎配置中获取database.yml文件?,ruby-on-rails,Ruby On Rails,我正在创建一个rails可装载引擎,需要从lib/MyEngine/engine.rb文件中使用该引擎的应用程序中检索database.yml文件。首先,这可能吗?如果是这样,你将如何实现这一点 我尝试在engine.rb文件中使用“Rails.root”,但它返回nil 在这方面的任何帮助都将是非常好的,并提前感谢您。这就足够了: path = Dir.pwd + '/config/database.yml' 我使用: 如果要加载已解析的文件,请执行以下操作: YAML.load_file(
path = Dir.pwd + '/config/database.yml'
我使用:
如果要加载已解析的文件,请执行以下操作:
YAML.load_file("#{ENV["APP_ROOT"]}/config/database.yml")
另外,为了确保在这些行之前设置了我用来添加的APP_ROOT变量:
ENV["APP_ROOT"] ||= File.expand_path("#{File.dirname(__FILE__)}/..")
(obv.根据返回到根文件夹的级别修复该路径)
这也适用于MacOSX、linux和unix以外的操作系统,其中“/”不是路径的标准分隔符。这非常有效-只需一个小修改:-path=Dir.pwd+'/config/database.yml'
ENV["APP_ROOT"] ||= File.expand_path("#{File.dirname(__FILE__)}/..")
File.join(Rails.root, 'config', 'database.yml')