2010-12-03 38 views
0

我試圖讓Carrierwave(0.5.1)與Mongoid(2.0.0.beta.20),Rails 3一起工作。我在this guide的每一步都遵循了。Mongoid.config.master.connection.host發生了什麼?

在配置/初始化/ carrierwave.rb,我有:

CarrierWave.configure do |config| 
    config.grid_fs_database = Mongoid.database.name 
    config.grid_fs_host = Mongoid.config.master.connection.host 
    config.storage = :grid_fs 
    config.grid_fs_access_url = "/uploads" 
end 

當我嘗試啓動我的服務器(軌服務器)。在控制檯,我得到:

...config/initializers/carrierwave.rb:3:in `block in <top 
(required)>': undefined method `host' for #<Mongo::Connection: 
0x00000103802420> (NoMethodError) 

我不明白爲什麼我得到這個錯誤。我到處找 ,似乎無法找到爲什麼發生這種情況...

看來,Mongoid.config.master.connection.host不Mongoid的較新版本工作了 。這是刪除?什麼是 替代這個?

到目前爲止,我的解決方法是如下代碼:

CarrierWave.configure do |config| 
    config.grid_fs_database = Mongoid.database.name 
    config.grid_fs_host = 'localhost' 
    config.storage = :grid_fs 
    config.grid_fs_access_url = "/uploads" 
end 

3號線,應該是:config.grid_fs_host = 'localhost' 的。 < - 有沒有更好的方式根據環境動態指示主機?

回答

1

發現mongo寶石已經改變。所以它現在必須是:

config.grid_fs_host = Mongoid.database.connection.primary_pool.host 
+0

工程就像一個魅力! – sandstrom 2011-01-28 10:49:16