親ルートでは利用できない関連データをフェッチする必要があるルートがあるため、基本的にモデルをリロードし、その過程で JSONAPI に include ディレクティブを提供して他のモデルを埋め込む必要があります。というわけでルートはこんな感じ。
import Ember from 'ember';
// route for patients/1/appointments
export default Ember.Route.extend({
model: function() {
const query = {
id: this.modelFor('patient').get('id'),
include: 'appointments,appointments.practitioner'
},
success = function(patient) {
return patient.get('appointments');
};
return this.store.queryRecord('patient', query).then(success);
}
});
成功のコールバックは、2 回目の予約を取得しています。これは驚くべきことではありませんが、ストアにローカルにあることも認識しているように見えます。そのため、モデルを一連の予定モデルに設定する合理的な方法を解決しようとしています。さまざまな理由から、この特定のリクエストのロジックをアダプタに保存したくありません。たとえば、患者の予約を取得するたびに、常に開業医側をロードする必要があるとは限らないためです。何か案は?