Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 是否可以从rails引擎配置中获取database.yml文件?_Ruby On Rails - Fatal编程技术网

Ruby on rails 是否可以从rails引擎配置中获取database.yml文件?

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(

我正在创建一个rails可装载引擎,需要从lib/MyEngine/engine.rb文件中使用该引擎的应用程序中检索database.yml文件。首先,这可能吗?如果是这样,你将如何实现这一点

我尝试在engine.rb文件中使用“Rails.root”,但它返回nil

在这方面的任何帮助都将是非常好的,并提前感谢您。

这就足够了:

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')