2016-09-29 3 views
1

Ich arbeite an Ruby on Rails als meine API mit Mongoid. Angenommen habe ich 2 Modelle:Holen Sie sich die Assoziationen, wenn Sie die Anfrage erhalten.

class Human 
    field: salary, type: Integer 
    has_many: dogs 
end 

class Dog 
    field: name, type: String 
    belongs_to: human 
end 

Ich möchte alle Hunde bekommen, dass Mensch hat, wenn ich alle Menschen fragen, wie kann ich dies tun?

Ich weiß, eingebettete Dokumente können dies tun, aber dann kann ich Hund Dokument nicht leicht finden. Deshalb verwende ich Assoziation statt eingebettetes Dokument.

Ausgang erwartet, wenn ich alles menschliche Abfrage:

[ 
    { 
     "_id": "1", 
     "salary": 5000, 
     "dogs": [ 
      { 
       "_id": "1", 
       "name": "dog1", 
      } 
     ] 
    }, 
    { 
     "_id": "2", 
     "salary": 8000, 
     "dogs": [ 
      { 
       "_id": "2", 
       "name": "dog2", 
      }, 
      { 
       "_id": "3", 
       "name": "dog3", 
      } 
     ] 
    } 
] 

Vielen Dank im Voraus. Ich bin sehr neu und entschuldige mich, wenn ich einige dumme Fragen gestellt habe.

+0

können Sie nicht einfach 'Human.includes (: dogs)', können Sie? – Aleksey

+0

Was verwenden Sie als API-Ansichten? Jbuilder oder etwas anderes? – Aleksey

Antwort

2

Menschen besteht aus den erforderlichen Daten mit jeder Person, die die Hunde, die sie besitzen, mit Details wie ihren Namen enthält.

+0

Danke für die schnelle Antwort. Ich weiß nicht einmal, dass es eine Includes-Methode gibt. Ich las [http://guides.rubyonrails.org/association_basics.html](http://guides.rubyonrails.org/association_basics.html] und ich sah nichts davon. –

+0

Sie können Informationen darüber finden http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#method-i-includes –

Verwandte Themen