httpリクエストのrequest.domain
が特定の訪問者を公開する機能を決定する、マルチドメインのRails 4アプリケーションがあります。db.collection.insert()の使用中にMongoDBデータベースを即座に切り替えるにはどうすればいいですか?
私のアプリの各ドメインは、独自のMongoDBデータベースによって提供される必要があります。例えば。 domain1.comは、db_for_domain_1によって提供されるなど
私は
Mongoid.override_database("db_for_#{request.domain}")
は私がその場でデータベースを切り替えることができますMongoDB docs on runtime persistenceことで読むことができます。
しかし、モンゴイドをバイパスしてmongoシェルメソッドdb.collection.insert()を使用すると、永続性を維持するにはどうすればよいですか?私はまだ私のアプリケーション内からそれを行うでしょう。
回答はMongoDB docs on collection accessにあるかもしれませんが、わかりません。私が正しくあなたの質問を理解していればそれでどのように私はこの操作中に/の前にデータベースを切り替えるか?:
MyModel.collection.insert({field_1: "Value 1", field_2: "Value 2"})
データベース間で同じモデルを使用していますか? – tegon
そうですね!私はまったく同じモデルです。 – ChristofferJoergensen
"...どのように永続性を維持するのですか?":ODMは、そのフレームワーク外で行われた操作について知ることはできません。 mongoシェルコマンドでドキュメントを挿入すると、Mongoidを介してそのドキュメントの読み込みをトリガして、それを永続レイヤにロードします。 –