0

スクリプトから 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]

アーブは:

/usr/bin/irb1.9.1 -- バージョン irb 0.9.6(09/06/30)

「rubygems」を要求することも試みましたが、私の知る限り、Ruby 1.9 では必要ありません。私は何かを忘れていますか?

4

1 に答える 1

0

この問題は、ruby を再インストールすることで解決されました。何が問題なのか、何が原因なのかわかりませんでした。

みんなの助けに感謝します。

于 2013-09-08T18:25:18.350 に答える