2

Anemone を使用して、MongoDB を使用しようとすると、次のエラーが発生します。

gems/anemone-0.7.2/lib/anemone/storage.rb:28:in `MongoDB': uninitialized constant Mongo::Connection (NameError)

コードは次のようになります。

require 'anemone'
require 'mongo'

Anemone.crawl("my.site") do |anemone|
  anemone.storage = Anemone::Storage.MongoDB
  # more code here...
end

助言がありますか?

4

1 に答える 1

0

Anemone の Mongo ストレージ ドライバーは 2010 年以降更新されておらず、Mongo ruby​​ ドライバーの 1.x バージョンの構文を引き続き使用しています。

この問題を回避する最も簡単な方法は、古い gem を使用するようにスクリプトに指示することです。

まず、システムに 1.x バージョンの gem があるかどうかを確認します。コマンドラインから:

gem list mongo

次のような結果が得られるはずです。

*** LOCAL GEMS ***

mongo (2.2.5, 1.12.5)
mongodb (2.1.0)

私は 1.x バージョン (1.12.5) を持っていたので、問題ありません。そうでない場合は、次を使用してインストールできます。

gem install mongo -v 1.12.5

次に、ファイルの先頭に次の行を追加して、1.x バージョンの gem を使用するようにスクリプトに指示します。

gem 'mongo', '=1.12.5'

スクリプトの他の場所で Mongo を使用している場合は、1.x 構文を使用する必要があることに注意してください。

また、bson_ext をインストールするように求める警告が表示される場合があります。これは次の方法で実行できます。

gem install bson_ext
于 2016-05-15T01:54:10.203 に答える