我有一个使用Rails API的Ember应用。我有一个团队表和一个裁判表,都链接到另一个名为refereeTeamStats的表。我正在尝试为一个团队获得所有裁判队员,并包括裁判资源,以便我可以获得裁判的名字。简而言之,我需要我的Ember应用程序来呼叫/teams/:team_id/refereeTeamStats?include=referee
最初,我让我的应用程序通过这条路线获得了裁判队员队伍:
model() {
return this.modelFor('teams/show').get('refereeTeamStats');
}
这将调用/teams/:team_id/refereeTeamStats
但是,这将不包括裁判资源。我可以通过在嵌套资源(refereeTeamStats)上包含资源(裁判)来获得refereeTeamStats的最佳方式是什么?
答案 0 :(得分:0)
您的refereeTeamStats
序列化程序可以实现DS.EmbeddedRecordsMixin
,并定义
attrs: {
referee: { embedded: 'always' }
}
因此,如果您的API在referee
有效内容中返回refereeTeamStats
键,则ember会将其反序列化为正确的对象。
答案 1 :(得分:0)
我最后以不同的方式解决这个问题。由于我使用的是JSONAPI::Resources gem,我可以改为/refereeTeamStats?filter[team_id]=:team_id&include=referee
。为此,我这样做了:
model() {
const team = this.modelFor('teams/show');
return this.store.query('refereeTeamStat', {filter: {team_id: team.get('id')}, include: 'referee'});
}