Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby MongoClient:从irb初始化成功,从脚本初始化失败_Ruby_Mongodb - Fatal编程技术网

Ruby MongoClient:从irb初始化成功,从脚本初始化失败

Ruby MongoClient:从irb初始化成功,从脚本初始化失败,ruby,mongodb,Ruby,Mongodb,我试图从脚本初始化MongoClient,但失败了。 我所做的只是: require 'mongo' include Mongo client = MongoClient.new("localhost", 27017) 并且它失败,出现以下错误: /var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/cursor.rb:43:in `initialize': undefined method `connection' for nil:NilClass (

我试图从脚本初始化MongoClient,但失败了。 我所做的只是:

require 'mongo'
include Mongo
client = MongoClient.new("localhost", 27017)
并且它失败,出现以下错误:

/var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/cursor.rb:43:in `initialize': undefined method `connection' for nil:NilClass (NoMethodError)
    from /var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/db.rb:564:in `new'
    from /var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/db.rb:564:in `command'
    from /var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/mongo_client.rb:591:in `block in check_is_master'
    from /usr/lib/ruby/1.9.1/timeout.rb:68:in `timeout'
    from /var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/mongo_client.rb:590:in `check_is_master'
    from /var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/mongo_client.rb:474:in `connect'
    from /var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/mongo_client.rb:698:in `setup'
    from /var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/mongo_client.rb:155:in `initialize'
    from ./test.rb:52:in `new'
    from ./test.rb:52:in `<main>'
/var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/cursor.rb:43:in'initialize':nil:NilClass(NoMethodError)的未定义方法“connection”
from/var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/db.rb:564:in'new'
from/var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/db.rb:564:in'command'
from/var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/mongo\u client.rb:591:“检查中的块是主块”
from/usr/lib/ruby/1.9.1/timeout.rb:68:in'timeout'
from/var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/mongo\u client.rb:590:in'check\u is\u master'
from/var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/mongo_client.rb:474:in'connect'
from/var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/mongo_client.rb:698:in'setup'
from/var/lib/gems/1.9.1/gems/mongo-1.9.1/lib/mongo/mongo_client.rb:155:in'initialize'
from./test.rb:52:in'new'
from./test.rb:52:in`'
但是,当我从irb尝试完全相同的事情时,它是有效的

Ruby版本是:

ruby 1.9.3p194(2012-04-20修订版35410)[x86_64-linux]

内部评级是:

/usr/bin/irb1.9.1——版本 irb 0.9.6(09/06/30)

我也尝试过需要“rubygems”,但据我所知,Ruby1.9并不需要它。
我忘了什么吗

通过重新安装ruby解决了此问题。我从来没有发现问题是什么以及是什么原因造成的


谢谢大家的帮助。

如前所述,这对我来说很好;你能提供一个最小完全失败的例子吗?克里斯,这是一个最小完全失败的例子。这就是文件中的所有内容…但它在irb中有效…它在这里肯定有效;抛出错误是因为没有活动的连接对象,但在此之前它应该会爆炸。考虑打开一个关于蒙哥红宝石司机的错误报告。是的,我想我会的。我还将尝试安装一个不同的Ruby版本,以防万一。谢谢。如果它不能正常工作,会让很多人崩溃。我怀疑这可能是你们这边的环境问题。您使用的是什么版本的mongo gem?为什么您的irb看起来在不同的ruby运行时(1.9.1)下?