ActiveRecordのとモンゴ/モンゴマッパーブリッジ
-
20-09-2019 - |
質問
私はアクティブレコードを使用していると私はMongoDBのを使用して、いくつかの新機能を追加したいどのプロジェクトを持っています。むしろ再発明ホイールと再書き込みサイト全体、どのように私はMongoMapperや他のActiveRecord(postgresの)を使用して1、2つのモデルを一緒に統合することができます。
より私は他の人が成功し、それを行っていることがわかってきましたが、ありません例:
たとえば、私は場所の既存のActiveRecordのモデルに関連したい場所のSTI Mongoのモデル(複数可)を持っている...つまり都市。そして、私はコンサートでそれらを使用する方法Authlogicに基づいてUserモデル...?私は正しい方向へのポインタまたは2に感謝するだろう。
おかげで、
解決
この美しく働いていた。
場所モデル
key :location_id, Integer, :required => true
def location
Location.find(location_id)
end
場所モデル
def self.find_places(id)
Property.find_by_location_id(id)
end
def find_places
Property.find_by_location_id(id)
end
他のヒント
また、型キャストを使用することができます。
代わりにちょうどMongoDBの中location_idのを格納する、あなたはmongomapperはモンゴ優しい安全と-的に各場所のインスタンスをシリアル化できるようにする場所クラスのクラスメソッド、from_mongo
とto_mongo
に実装することができます。
シンプル(ISTC)例:
の場所のモデルの
key :location, Location, :required => true
の場所モデルの
def self.to_mongo(location)
location[:id]
end
def self.from_mongo(location_id)
find(location_id)
end
これは、当然のことながら、前の回答と全く同じ例です。ここでクールなものが必要な場合には、このようにそれが簡単に照会し、モンゴからデータを取得すること、より多くのデータと、完全な文字列をシリアル化できることです。
は、例えば、location_idの座標は、あなたが/ geodbとマップを模倣することができるように、同じ緯度に場所を減らします。 (愚かな例、I知っている)
所属していません StackOverflow