Ruby on rails 带rails的mongoid-数据库应该是Mongo::DB,而不是NilClass“;
问候 我正在尝试让Mongoid与我的Rails应用程序一起工作,我正在 错误:Ruby on rails 带rails的mongoid-数据库应该是Mongo::DB,而不是NilClass“;,ruby-on-rails,mongodb,mongoid,Ruby On Rails,Mongodb,Mongoid,问候 我正在尝试让Mongoid与我的Rails应用程序一起工作,我正在 错误:“装运bol中的Mongoid::Errors::InvalidDatabase应为” “唯一”数据库应该是Mongo::DB,而不是NilClass“ 我在配置目录中创建了mongoid.yml文件,并将mongodb作为守护进程运行。配置文件如下所示: defaults: &defaults host: localhost development: <<: *defaults
“装运bol中的Mongoid::Errors::InvalidDatabase应为”
“唯一”数据库应该是Mongo::DB,而不是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'] %>
defaults:&defaults
主机:本地主机
发展:
我想解释一下这个问题:
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
我想解释一下这个问题:
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
另外,如果您编写自己的非rails脚本并首先初始化模型,则会出现此错误
您需要在初始化模型之前配置数据库
我在编写内部使用mongoid的gem时遇到了这个问题
测试用例也会遇到问题,因此将Mongoid.configure部分放在Test/helper.rb中。如果您编写自己的非rails脚本并首先初始化模型,则会出现此错误
您需要在初始化模型之前配置数据库
我在编写内部使用mongoid的gem时遇到了这个问题
测试用例也很成功,所以请将Mongoid.configure部分放在您的测试/helper.rb您是在生产中还是在本地机器上开发?您是在生产中还是在本地机器上开发