问候
我正在努力让Mongoid使用我的Rails应用程序而且我正在使用
错误:"Mongoid::Errors::InvalidDatabase in 'Shipment bol should be
unique' Database should be a Mongo::DB, not NilClass"
我在配置目录中创建了mongoid.yml文件,并将mongodb作为守护进程运行。配置文件是这样的:
defaults: &defaults
host: localhost
development:
<<: *defaults
database: ship-it-development
test:
<<: *defaults
database: ship-it-test
production:
<<: *defaults
host: <%= ENV['MONGOID_HOST'] %>
port: <%= ENV['MONGOID_PORT'] %>
database: <%= ENV['MONGOID_DATABASE'] %>
我的所有规格都因上述错误而失败。我正在使用rails 2.3.8。
有人有想法吗?
答案 0 :(得分:3)
喜欢解释问题:How can i generate mongoid.yml config in Rail 2.3.5?
mongoid.yml不适用于Rails 2.3.x.它仅使用Rails 3自动加载。
您需要添加初始化程序并加载文件并使用它来定义数据库。
例如,您可以在初始化程序中添加它。
mongoid_conf = YAML::load_file(Rails.root.join('config/mongoid.yml'))[Rails.env]
Mongoid.configure do |config|
config.master = Mongo::Connection.new(mongoid_conf['host'],
mongoid_conf['port']).db(mongoid_conf['database'])
end
答案 1 :(得分:3)
此外,如果您编写自己的非rails脚本并首先初始化模型,那么您将收到此错误。
您需要在初始化模型之前配置数据库。
我在写一个内部使用mongoid的宝石
时遇到了这个测试用例也会点击它,所以将Mongoid.configure部分放在test / helper.rb中