Verschachtelte Objekte in JSON-Antworten von MongoMapper-Objekten einfügen

8
%Vor%

Gibt nur Geschäfte ohne ihre Produkte zurück, ebenso wie

%Vor%

Die Assoziation ist getestet, ich kann die verschachtelten Produkte in der Konsolenausgabe sehen, sagen wir,

%Vor%

Wie erhalten Sie die richtigen Produkte, die in MongoMapper enthalten sind?

Hier sind meine Modelle:

%Vor%

AKTUALISIEREN

Als ich Scotts Vorschlag versuchte, habe ich dem Store-Modell Folgendes hinzugefügt:

%Vor%

Und in der Steuerung:

%Vor%

Wie sieht aus wie es funktionieren sollte? Angenommen, das Array von Hashes würde #to_json aufrufen, und dann würde dasselbe mit jedem Hash und jedem Product + Service passieren. Ich lese durch die Quelle von ActiveSupport :: JSON, und bis jetzt habe ich davon gegriffen.

Aber, noch nicht funktioniert ...: (

    
oliverbarnes 24.02.2011, 17:19
quelle

2 Antworten

17

Sehen Sie sich die Methode as_json() an. Sie fügen dies in Ihre Modelle ein, definieren Ihren JSON und rufen dann einfach die Methode render :json auf und bekommen, was Sie wollen.

%Vor%

Sie werden self.collections bemerken, was eine vielfache Beziehung ist. In diesem Modell ist auch as_json() definiert:

%Vor%

Dieser enthält self.monthly_views , was eine weitere Beziehung darstellt.

Dann in Ihrem Controller:

%Vor%     
user634718 25.02.2011, 19:01
quelle
2

Sie müssen möglicherweise eine eigene Methode erstellen, um einen Hash zu generieren, und dann den Hash in JSON umwandeln. Ich denke etwa so:

%Vor%     
Scott Messinger 25.02.2011 03:11
quelle