2017-07-20 4 views
0

Ich habe eine Ember App, die eine Rails API verwendet. Ich habe eine Team-Tabelle und eine Schiedsrichter-Tabelle, beide verlinken zu einer anderen Tabelle namens refereeTeamStats. Ich versuche, alle Schiedsrichter-TeamStats für ein Team zu bekommen und die Schiedsrichter-Ressource einzubeziehen, damit ich den Namen des Schiedsrichters bekommen kann. Kurz gesagt, ich brauche meine Ember App /teams/:team_id/refereeTeamStats?include=referee zu nennen Anfangs hatte ich meine App, die refereeTeamStats durch die Route erhalten, indem dies zu tun:Zugriff auf verschachtelte Ressourcen in API

model() { 
    return this.modelFor('teams/show').get('refereeTeamStats'); 
} 

Dies wird /teams/:team_id/refereeTeamStats jedoch nennen, wird dies nicht der Schiedsrichter Ressource enthalten. Was ist der beste Weg, um die SchiedsrichterTeamStats mit einer Ressource (Schiedsrichter) auf einer verschachtelten Ressource (refereeTeamStats) zu bekommen?

+0

Welche Ressourcen übergeben Sie als Antwort auf diese Methode? – Vishal

Antwort

0

Ihre refereeTeamStats Serializer könnte die DS.EmbeddedRecordsMixin, implementieren und

attrs: { 
    referee: { embedded: 'always' } 
} 

definieren, so dass, wenn Ihre API die referee Schlüssel in der refereeTeamStats Nutzlast zurückkehrt, glut es auf das richtige Objekt deserialisiert wird.

0

Ich endete damit auf eine andere Weise. Da ich den Edelstein JSONAPI::Resources benutzte, konnte ich stattdessen /refereeTeamStats?filter[team_id]=:team_id&include=referee machen. Um das zu tun, habe ich Folgendes getan:

model() { 
    const team = this.modelFor('teams/show'); 
    return this.store.query('refereeTeamStat', {filter: {team_id: team.get('id')}, include: 'referee'}); 
}