Ruby on rails &引用;未初始化的常量MongoMapper::Base“;执行rake mongo:mongrate时出错

Ruby on rails &引用;未初始化的常量MongoMapper::Base“;执行rake mongo:mongrate时出错,ruby-on-rails,mongodb,rubygems,mongomapper,Ruby On Rails,Mongodb,Rubygems,Mongomapper,在我的“rake mongo:mongrate”尝试中,我遇到了以下错误: 我的档案中有以下内容- gem 'rake', '~>0.8' gem 'mongo', '= 1.0.7' # must be same version as bson/bson_ext gem 'bson', '= 1.0.4' # must be same version as bson_ext/mongo gem 'bson_ext', '= 1.0.4' # m

在我的“rake mongo:mongrate”尝试中,我遇到了以下错误:

我的档案中有以下内容-

gem 'rake', '~>0.8'
gem 'mongo',        '= 1.0.7'  # must be same version as bson/bson_ext
gem 'bson',         '= 1.0.4'  # must be same version as bson_ext/mongo
gem 'bson_ext',     '= 1.0.4'  # must be same version as bson/mongo
gem 'mongo_mapper', '~> 0.8.2'
我还在Rakefile中添加了以下行-

import 'vendor/plugins/mongrations/lib/tasks/mongo.rake'

有没有办法解决这个问题?谢谢。

MongoMapper::Base
在去年的某个时候被弃用了(它甚至已经不存在了!)。现在,您需要
lib/mongo\u mapper/mongrations.rb中的
MongoMapper.connection
def connection
而不是
MongoMapper::Base.connection

我不确定它什么时候坏了,但做了那个改变已经为我解决了问题

如果您想修补它,可以使用:

module MongoMapper
  class Base
    def self.connection
      MongoMapper.connection
    end
  end
end

谢谢,克里斯。我明白你的意思。我还注意到在“vendor/plugins/mongrations/lib/mongo_mapper/migrator.rb”文件的“def property_table_name”中有“MongoMapper::Base.table_name_prefix”和“MongoMapper::Base.table_name_suffix}”。如何修复对MongoMapper::Base的这些引用?谢谢你的帮助!如果您愿意等几分钟,我将对它们进行修复,并通过测试将其作为宝石发布。您应该可以直接安装gem并立即启动。@mei:
gem安装向导
,然后通过config.gem或在gem文件中包含它。请参阅完整自述。嗨,克里斯,我从github.com/cheald/mongrations下载了gem,安装了mongrations,并将gem'mongrations'添加到我的gem文件中。现在,我得到$rake mongo::mongrate--trace(in/home/mei/jobbly)rake中止!不知道如何构建任务“mongo::mongrate”我缺少什么吗?我似乎找不到“vendor/plugins/mongrations/lib/tasks/mongo.rake”
module MongoMapper
  class Base
    def self.connection
      MongoMapper.connection
    end
  end
end