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 年以来一直没有更新,并且仍然使用 1.x 版本的 Mongo ruby​​ 驱动程序的语法。

解决此问题的最简单方法是指示您的脚本使用较旧的 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 回答