Como carregar os relacionamentos belongsTo / hasMany na rota com o EmberJS

No meu aplicativo EmberJS, estou exibindo uma lista de Compromissos. Em uma ação no AppointmentController, preciso obter o proprietário dos compromissos, mas o proprietário sempre retorna "indefinido".

Meus arquivos:

models / compromisso.js

import DS from 'ember-data';

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

models / person.js

import DS from 'ember-data';

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

templates / compromissolist.js

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

controllers / meetinglist.js

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

controllers / compromisso.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
        }
    }
});

Agora, eu sei que posso mudar a propriedade do proprietário paraowner: DS.hasMany('person', {async: true})e lide com a promessa retornada deappointment.get('owner');, mas não é isso que eu quero. Eu descobri que se eu fizer isso{{appointment.owner}} ou isto{{appointment.owner.name}} no modelo da lista de compromissos, o registro do proprietário é buscado no servidor. Então, acho que o Ember não carrega relacionamentos, a menos que sejam usados no modelo.

Acho que a solução para o meu problema é usar a rota de listas de compromissos para buscar o registro no relacionamento belongsTo. Mas não consigo descobrir como.

Talvez algo assim?

rotas / compromissolist.js

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

EDITAR

Eu fiz isso:

rotas / compromissolist.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')   
         });
    }
});

e funciona, mas eu não gosto da solução ...

questionAnswers(3)

yourAnswerToTheQuestion