我在目录中有一个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等。 有什么问题?
答案 0 :(得分:1)
正如您在documentation中看到的那样,#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')