Ruby gem加载但仍然给出“未初始化的常量”

时间:2013-10-25 17:24:39

标签: mongodb ruby-on-rails-3.2 rubygems

我不明白这个输出:

$ rails c
Loading development environment (Rails 3.2.14)
1.9.3p392 :001> require 'rubygems'
 => false 
1.9.3p392 :002 > require 'mongo'
 => false 
1.9.3p392 :003 > include Mongo
 => Object 
1.9.3p392 :004 > Mongo::VERSION
 => "1.6.0" 
1.9.3p392 :005 > c = MongoClient.new
NameError: uninitialized constant MongoClient
    from (irb):5

很明显,bundler正在运行并加载MongoDB驱动程序gem“mongo”(版本1.6,应该没问题)。

然而,当我尝试根据文档引用MongoClient时,我得到“未初始化的常量”。如果我尝试将其引用为Mongo :: MongoClient.new

,也会发生同样的情况

我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

从您的控制台输出,您使用的是MongoDB Ruby驱动程序版本1.6.0。 相应的API文档可以在这里找到。

http://api.mongodb.org/ruby/1.6.0/

版本1.6.0使用旧的Mongo :: Connection类连接到MongoDB。

MongoClient类是从1.8.0版开始的新版本,因此在任何旧版本中都不可用。

请使用匹配的API和文档。 请考虑升级到较新版本的mongo_mapper(0.12.0)和mongo(1.9.2)宝石。