【问题标题】:gems/anemone-0.7.2/lib/anemone/storage.rb:28:in `MongoDB': uninitialized constant Mongo::Connection (NameError)gems/anemone-0.7.2/lib/anemone/storage.rb:28:in `MongoDB': 未初始化的常量 Mongo::Connection (NameError)
【发布时间】:2015-08-28 15:34:34
【问题描述】:

使用 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

有什么建议吗?

【问题讨论】:

    标签: ruby mongodb gem anemone


    【解决方案1】:

    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
    

    【讨论】:

      猜你喜欢
      • 2013-12-20
      • 1970-01-01
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 2015-01-19
      • 2015-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多