我试图从脚本初始化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>'
但是,当我从irb尝试完全相同的东西时,它是有效的。
Ruby版本为:
ruby 1.9.3p194(2012-04-20修订版35410)[x86_64-linux]
irb是:
/usr/bin/irb1.9.1--版本irb 0.9.6(09/06/30)
我也尝试过需要"rubygems",但据我所知,Ruby 1.9并不需要它。我忘了什么吗?
此问题已通过重新安装ruby解决。我从来没有发现问题是什么,是什么原因造成的。
感谢大家的帮助。