2015-10-05 74 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

相關問題