0

我在一个目录中有一个 minitest_helper.rb 和 mongoid.yml 文件。我把下面的代码放在 minitest_helper 中;

require 'mongoid'
Mongoid.load!("mongoid.yml", :test)

虽然这些文件在同一个目录中,但 Mongoid 无法加载 yml 文件,我得到“没有这样的文件”,如下所示:

/home/developer/.rvm/gems/ruby-1.9.3-p374/gems/mongoid-3.1.2/lib/mongoid/config
/environment.rb:40:in `initialize': No such file or directory - mongoid.yml
(Errno::ENOENT)

此外,我不使用 Rails、Sinatra 等任何框架。有什么问题?

4

1 回答 1

1

正如您在文档中看到的,#load!需要文件的完整路径。尝试将代码更改为如下内容:

Mongoid.load!(File.join('path_to_the_yml','starting_at_root_of_the_project', 'mongoid.yml') , :test)

您构建的方式File.join将取决于您的目录结构。如果我有这样的结构:

project_root
--lib
--spec
----fixtures
------test.xml  # the path for this file is project_root/spec/fixtures/test.xml

然后File.join将如下所示:

File.join('spec','fixtures', 'test.xml')
于 2013-04-09T14:40:28.730 回答