これを処理する方法は、アプリケーション アダプターを変更してインクルードを処理し、インクルードをアダプター オプションとしてクエリに渡すことです。現在、単一のインクルードのみを処理していますが、配列を処理するのはそれほど難しくありません。
アプリ/アダプター/application.js
import DS from 'ember-data';
export default DS.JSONAPIAdapter.extend({
urlForFindRecord(query, modelName, snapshot) {
var url = this._super(...arguments);
return this._processIncludes(url, snapshot);
},
urlForFindAll(query, modelName, snapshot) {
var url = this._super(...arguments);
return this._processIncludes(url, snapshot);
},
_processIncludes(url, snapshot) {
var options = snapshot && snapshot.adapterOptions;
if (options && options.include) {
url = `${url}?include=${options.include}`;
}
return url;
},
});
次に、ルート モデル フックにアダプター オプションを追加します。
return this.store.findRecord('myModel', params.id, {
adapterOptions: {
include: ['myChildModel']
}