2013-01-24 54 views
0

這裏是我的寶石名單,如何配置carrierwave和mongoid(3.0.17)?

  • 蒙戈(1.8.2)
  • mongoid(3.0.17)
  • mongoid-grid_fs(1.7.0)
  • carrierwave(0.8.0)
  • carrierwave-mongoid(0.4.0)

我試圖生成一個上傳圖像,但它不工作時,carrierwave.rb它看起來像這樣:

require 'carrierwave/mongoid' 
CarrierWave.configure do |config| 
    config.grid_fs_database = Mongoid::Config.sessions[:default] 
    config.grid_fs_port = 27017 
    config.grid_fs_host = '127.0.0.1' 
    config.storage = :grid_fs 
end 

,但放了一個錯誤:

/config/initializers/carrierwave.rb:3:in `block in <top (required)>': undefined method `grid_fs_database=' for CarrierWave::Uploader::Base:Class (NoMethodError) 
..... 

有針對的解決方案?

感謝

回答

0

我簡單瀏覽了一下the source for carrierwave-mongoid,看來,你指定的配置選項(grid_fs_databasegrid_fs_portgrid_fs_host)不是有效的選項 - 因此你的錯誤。

我的理解是,carrierwave-mongoid從Mongoid配置中派生出它的mongoDB配置,所以不需要再指定它。你的配置應該是這樣的:

require 'carrierwave/mongoid' 
CarrierWave.configure do |config| 
    config.storage = :grid_fs 
    config.grid_fs_access_url = "/uploads" # or whatever you'd like the HTTP path to be 
end 
+0

thx,我修改了carrierwave.rb文件,就像你說的那樣,這是工作。 Arrierwave-mongoid通過mongoid.yml派生它的mongoDB配置,但我想連接另一個grid_fs數據庫,如何配置? – tsinghan

+0

我不相信在carrierwave-mongoid中有這樣的支持。你可能會考慮在github上開放一個問題,並提出一個功能請求或者與項目維護者討論這個想法。 – theTRON