2013-08-21 5 views
2

Mongoid fournit plusieurs options pour modifier la base de données mongodb utilisée, soit en spécifiant la nouvelle base de données, soit en changeant le nom de la session pour celui qui est déjà défini dans le fichier mongoid.yml. Je me demandais s'il y avait un moyen de changer la session (c.-à-d. L'hôte mongodb) pendant l'exécution de l'application.Mongoid Modifier dynamiquement l'hôte

Ainsi, par exemple, si je commencé ma demande et il fonctionne d'abord au large de la base de données principalesur le serveur 1, est-il un moyen de dire utiliser la base de données exemple sur le serveur 2

Répondre

2

Ce qui suit permet aux utilisateurs d'ajouter des sessions dynamiquement

session_hash = {"database" => "testmongo", "hosts" => ["127.0.0.1:3003"], "username" => "testuser", "password" => "test_password"} 
Mongoid::Config.sessions[:mongo_dynamic] = session_hash 
1
Model.with(database: "other_db_name").create() 

I Je ne sais pas si vous pouvez spécifier un serveur différent. Mais vaut la peine d'essayer

+0

Cela ne fonctionne pas parce qu'il suppose que la base de données est définie dans le fichier mongoid.yml, alors que la connexion doit être créé dynamiquement, par exemple si je tire les paramètres de connexion d'une base de données et que je dois l'ajouter à la collection de sessions mongoid. – user2701762

Questions connexes