在 Ruby 2.2 中使用 Mongoid 时出现 NoMethodError 未定义方法 'convert_key'

NoMethodError undefined method 'convert_key' when using Mongoid in Ruby 2.2

一个运行良好的项目在我从 Ruby 2.0 升级到 2.2 后开始抛出此错误。当我尝试访问 mongo 数据库时,即使是简单的 Table.all.to_a

也会发生这种情况
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/redacted.rb:64:

到代码:

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

键值为连接。

我仍然不确定为什么会这样。

我在项目gem文件中将mongo的版本设置为2.1.0,之前它自动下载了2.1.1。然后我执行了bundler update。这解决了问题。然后我将 gem 文件中的版本显式切换回 2.1.1 并再次 运行 bundler update 。问题还是解决了!所以我想不知何故 mongo gem 在我将项目从 2.0.0

移动到 rbenv Ruby 2.2.0 时被破坏了