Cómo cargar pertenece a / hasMuchas relaciones en ruta con EmberJS

En mi aplicación EmberJS estoy mostrando una lista de citas. En una acción en el AppointmentController, necesito obtener el propietario de las citas, pero el propietario siempre devuelve "indefinido".

Mis archivos:

modelos / cita.js

import DS from 'ember-data';

export default DS.Model.extend({
    appointmentStatus: DS.attr('number'),
    owner: DS.hasMany('person'),
    date: DS.attr('Date')
});

modelos / persona.js

import DS from 'ember-data';

export default DS.Model.extend({
    name: DS.attr('string')
});

templates / quotelist.js

{{#each appointment in controller}}
    <div>
        {{appointment.date}} <button type="button" {{action 'doIt'}}>Do something!</button>
    </div>
{{/each }}

controllers / quotelist.js

export default Ember.ArrayController.extend({
    itemController: 'appointment'
});

controladores / cita.js

export default Ember.ObjectController.extend({
    actions:{
        doIt: function(){
            var appointment = this.get('model');
            var owner = appointment.get('owner'); //returns undefined
            //Do something with owner
        }
    }
});

Ahora, sé que puedo cambiar la propiedad del propietario aowner: DS.hasMany('person', {async: true}), y luego manejar la promesa devuelta deappointment.get('owner');, pero eso no es lo que quiero. He descubierto que si hago esto{{appointment.owner}} o esto{{appointment.owner.name}} en la plantilla de la lista de citas, el registro del propietario se obtiene del servidor. Así que supongo que Ember no carga relaciones a menos que se usen en la plantilla.

Creo que la solución a mi problema es utilizar la ruta de las listas de citas para obtener el registro en la relación de. Pero no puedo entender cómo.

Tal vez algo como esto?

routes / quotelist.js

export default Ember.Route.extend({
    model: function() {
        return this.store.find('appointment');
    },
    afterModel: function(appointments){
        //what to do
    }
});

EDITAR

Hice esto:

routes / quotelist.js

export default Ember.Route.extend({
    model: function() {
        return this.store.find('appointment');
    },
    afterModel: function(appointments){
         $.each(appointments.content, function(i, appointment){

                var owner= appointment.get('owner')   
         });
    }
});

y funciona, pero no me gusta la solución ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta