2010-12-03 12 views
0

私はCarongwave(0.5.1)をMongoid(2.0.0.beta20)、Rails 3で動作させようとしています。私はすべてのステップを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

mongoの宝石が変更されたことを知りました。だからそれは今でなければならない:

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

魅力のように動作します! – sandstrom

関連する問題