Mongoid.config.master.connection.host发生了什么?

时间:2010-12-03 07:18:51

标签: ruby-on-rails mongoid

我试图让Carrierwave(0.5.1)与Mongoid(2.0.0.beta.20),Rails 3一起工作。我在this guide处遵循了每一步。

在config / initializers / 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

当我尝试启动服务器时( rails服务器)。在控制台中,我得到:

...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'。 &lt; - 是否有更好的方法根据环境动态指示主机?

1 个答案:

答案 0 :(得分:1)

发现mongo gem已经改变了。所以它现在必须是:

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