実行時に現在のMongoMapperデータベースを変更するにはどうすればよいですか?実行時にMongoMapperの現在のデータベースを変更してください
また、名前が動的に計算されるデータベースにモデルをマッピングする方法はありますか?例えば:
class MyEntity
include MongoMapper::Document
set_database_name "#{some_dynamic_value}"
end
実行時に現在のMongoMapperデータベースを変更するにはどうすればよいですか?実行時にMongoMapperの現在のデータベースを変更してください
また、名前が動的に計算されるデータベースにモデルをマッピングする方法はありますか?例えば:
class MyEntity
include MongoMapper::Document
set_database_name "#{some_dynamic_value}"
end
あなたは、モデルの特定のデータベースを利用したい場合は...
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を参照してください。
あなたの質問の最初の部分に答え、ちょうど行います
MongoMapper.database = 'dbname'
新しい接続を作成する必要はありませんか?単にアクセサを呼び出すと、私のデータベースが変更されますか? – EdMelo
正しい。 MongoMapperは既存の接続を使用します。 –
Excelent。ちょうど私が探していたもの。 – EdMelo