2010-12-03 3 views
0

Mongoid (2.0.0.beta.20), Rails 3에서 Carrierwave (0.5.1)를 사용하려고합니다. 모든 단계를 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

몽고 보석이 변경되었음을 알았습니다. 따라서 이제는 다음과 같아야합니다.

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

매력처럼 작동합니다. – sandstrom

관련 문제