Ruby on rails 命名错误未定义方法';转换#u键';在Ruby 2.2中使用Mongoid时

Ruby on rails 命名错误未定义方法';转换#u键';在Ruby 2.2中使用Mongoid时,ruby-on-rails,ruby,mongodb,mongoid,Ruby On Rails,Ruby,Mongodb,Mongoid,在我从Ruby 2.0升级到2.2之后,一个工作正常的项目开始抛出这个错误。当我尝试访问mongo数据库时会发生这种情况,即使对于一个简单的表也是如此 NoMethodError (undefined method `convert_key' for {"database"=>"db_name"}:Mongo::Options::Redacted): 这里db_name是数据库的实际名称,它确实存在于mongoid.yml中配置的端口上。我正在使用mongoid(5.0.0) 如何解决此

在我从Ruby 2.0升级到2.2之后,一个工作正常的项目开始抛出这个错误。当我尝试访问mongo数据库时会发生这种情况,即使对于一个简单的
表也是如此

NoMethodError (undefined method `convert_key' for {"database"=>"db_name"}:Mongo::Options::Redacted):
这里db_name是数据库的实际名称,它确实存在于mongoid.yml中配置的端口上。我正在使用mongoid(5.0.0)

如何解决此错误

已更新 我打印出了一个更有用的错误,可追溯到该文件:

.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/mongo-2.1.1/lib/mongo/options/redact.rb:64:

对守则:

  def has_key?(key)
    super(convert_key(key))
  end
  alias_method :key?, :has_key?
键值为connect的


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

我将project gem文件中的mongo版本设置为2.1.0,之前它自动下载了2.1.1。然后我执行了
bundler更新
。这就解决了问题。然后,我将gem文件中的版本显式切换回2.1.1,并再次运行
bundler update
。问题还是解决了!所以我猜mongo gem在我将项目从mongoid的2.0.0版本迁移到rbenv Ruby 2.2.0时被破坏了?我猜你的yml文件有问题。mongoid(5.0.0),我删除了我的yml文件,用:rails g mongoid:config重新创建了它,然后更改了该文件中的db名称