2015-10-05 78 views
0

工作正常的项目在从Ruby 2.0升级到2.2后开始抛出此错误。它发生时,我尝试访问一个数据库蒙哥,即使是一个简单的Table.all.to_aNoMethodError在Ruby 2.2中使用Mongoid时未定义的方法'convert_key'

NoMethodError (undefined method `convert_key' for {"database"=>"db_name"}:Mongo::Options::Redacted): 

这里DB_NAME是超出于mongoid.yml配置的端口存在的数据库的实际名称。我正在使用mongoid(5.0.0)。

如何解决此错误?

更新 我打印出来,其追溯到文件更有用的错误:

.rbenv /版本/ 2.2.1/LIB /红宝石/宝石/ 2.2.0 /宝石/蒙戈-2.1 0.1/LIB /蒙戈/选项/ redacted.rb:64:

要的代码:

def has_key?(key) 
    super(convert_key(key)) 
    end 
    alias_method :key?, :has_key? 

用的连接的密钥值。

我还不确定为什么会发生这种情况。

+1

版本的mongoid?我的猜测是你的yml文件有问题。 – Anthony

+0

mongoid(5.0.0),我删除了我的yml文件,重新创建它:rails g mongoid:config,然后在该文件中更改了db名称 – LaserJesus

回答

0

我将项目gem文件中mongo的版本设置为2.1.0,之前它已经自动下载了2.1.1。然后我执行bundler update。这解决了这个问题。然后,我将gem文件中的版本切换回2.1.1,并再次运行bundler update。问题仍然存在!所以我猜莫名宝石已经损坏,因为我把项目从2.0.0移到rbenv Ruby 2.2.0

相关问题