2011-12-04 13 views

答えて

3

あなたは、モデルの特定のデータベースを利用したい場合は...

class MyEntity 
    include MongoMapper::Document 
    set_database_name "entities_database_development" 
end 

そこに文字列補間を行うことはできますが、それはクラスが読み込まれた後で解決されるだけです。

データベースが必要になるたびにデータベース名を計算するには、クラスまたはインスタンスデータベースの方法をオーバーライドします。

class MyEntity 
    include MongoMapper::Document 
    def database 
    connection.db("my_database_#{rand}_development") 
    end 
end 

あなたがオーバーライドすることによって行うことができます損害の種類のアイデアを得るためにpersistence plugin sourceを参照してください。

+0

Excelent。ちょうど私が探していたもの。 – EdMelo

0

あなたの質問の最初の部分に答え、ちょうど行います

MongoMapper.database = 'dbname' 
+0

新しい接続を作成する必要はありませんか?単にアクセサを呼び出すと、私のデータベースが変更されますか? – EdMelo

+0

正しい。 MongoMapperは既存の接続を使用します。 –

関連する問題