2010-12-03 7 views
0

J'essaye de faire fonctionner Carrierwave (0.5.1) avec Mongoid (2.0.0.beta.20), Rails 3. J'ai suivi chaque étape au this guide.Qu'est-il arrivé à Mongoid.config.master.connection.host?

Dans config/initializers/carrierwave.rb, j'ai:

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 

Lorsque je tente de démarrer mon serveur (rails serveur). Dans la console, je reçois:

...config/initializers/carrierwave.rb:3:in `block in <top 
(required)>': undefined method `host' for #<Mongo::Connection: 
0x00000103802420> (NoMethodError) 

Je ne comprends pas pourquoi j'obtiens cette erreur. Je l'ai regardé partout et ne peut pas sembler trouver pourquoi cela se passe ...

Il semble, Mongoid.config.master.connection.host ne fonctionne plus dans les versions les plus récentes de MongoId. Est-ce que cela a été supprimé Quel est le remplacement pour cela?

Jusqu'à présent, ma solution de contournement est le code suivant:

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 

Ligne 3, devrait être: config.grid_fs_host = 'localhost'. < - Existe-t-il un meilleur moyen d'indiquer dynamiquement l'hôte en fonction de l'environnement?

Répondre

1

J'ai découvert que la gemme mongo a changé. Donc, il doit maintenant être:

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

fonctionne comme un charme! – sandstrom

Questions connexes