2010-12-03 100 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