Что случилось с Mongoid.config.master.connection.host? - PullRequest
0 голосов
/ 03 декабря 2010

Я пытаюсь заставить Carrierwave (0.5.1) работать с Mongoid (2.0.0.beta.20), Rails 3. Я следовал за каждым шагом на этом руководстве .

В 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 server ).В консоли я получаю:

...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' .<- Есть ли лучший способ динамически указывать хост в зависимости от среды? </p>

1 Ответ

1 голос
/ 06 декабря 2010

Выяснилось, что камень монго изменился.Итак, теперь оно должно быть:

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