使用银莲花,我在尝试使用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
有什么建议吗?
最佳答案
Anemone中的Mongo存储驱动程序自2010年以来就没有更新过,仍然使用Mongo Ruby驱动程序1.x版本的语法。
解决此问题的最简单方法是指示脚本使用较旧的gem。
首先,检查您的系统中是否有gem的1.x版本。从命令行:
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
然后,指示脚本使用gem的1.x版本,方法是将这一行放在文件的顶部:
gem 'mongo', '=1.12.5'
注意,如果您在脚本中的任何其他地方使用Mongo,它现在将需要使用1.x语法。
此外,您可能会收到一个警告,要求您安装bson_ext,您可以使用它:
gem install bson_ext
关于ruby - gems/anemone-0.7.2/lib/anemone/storage.rb:28:在`MongoDB'中:未初始化的常量Mongo::Connection(NameError),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32274738/