Frage

Ich habe ein Projekt, das ich Active Record verwendet habe und die ich mag einige neue Features mit MongoDB hinzuzufügen. Anstatt neu erfinden das Rad und neu zu schreiben meine gesamte Website, wie kann ich integrieren 2 Modelle zusammen, eine, die MongoMapper und die anderen Active (Postgres) zu verwenden.

Ich habe festgestellt, dass andere haben es erfolgreich getan, aber keine Beispiele:

http: // Gruppen .google.com / Gruppe / mongomapper / browse_thread / thread / ec5ad00e18e7dd2c / 887b8b0b904a8f73? lnk = gst & q = active # 887b8b0b904a8f73

Zum Beispiel, ich habe ein STI Mongo Modell (e) von Orten, die ich zu einem bestehenden Active Modell der Standorte beziehen will ... also Städte. und ein User-Modell basiert auf Authlogic ... wie kann ich sie im Konzert? Ich würde für einen Zeiger oder zwei in der richtigen Richtung dankbar.

Danke,

War es hilfreich?

Lösung

Das funktioniert schön

legt Modell

  key :location_id, Integer, :required => true

    def location
        Location.find(location_id)
    end

Standorte Modell

  def self.find_places(id)
    Property.find_by_location_id(id)
  end

  def find_places
    Property.find_by_location_id(id)
  end

Andere Tipps

Sie können auch eine Schublade gesteckt verwenden.

Statt nur die location_id in mongodb speichern, können Sie Klassenmethoden implementieren, from_mongo und to_mongo, in der Location-Klasse mongomapper zu ermöglichen, jede Lage etwa in einem Mongo sichere und freundliche Weise serialisiert werden.

Simple (ISTC) Beispiel:

Orte Modell

key :location, Location, :required => true

Standort-Modell

def self.to_mongo(location)
  location[:id]
end

def self.from_mongo(location_id)
  find(location_id)
end

Dies ist natürlich genau das gleiche Beispiel wie in der vorherige Antwort. Die kühle Sache ist, dass Sie eine vollständige Zeichenfolge serialisiert werden können, mit mehr Daten, wenn nötig, damit es leichter zu Abfrage machen und Abrufen von Daten aus Mongo.

Zum Beispiel der location_id und Koordinaten, so dass Sie ein GeoDB nachahmen können und Map / Reduce nach Orten in der gleichen Breite. (Dumm Beispiel, ich weiß)

Referenz: Mehr MongoMapper Awesomenes

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top