Definir o modelo de dados da brasa para o URL de descanso aninhado
Estou tentando fazer algo que parece simples, mas não consigo encontrar a solução.
Meu aplicativo precisa editar documentos que contenham páginas.
Aqui está o meu modelo:
MyApplication.Document = DS.Model.extend({
title: DS.attr('string'),
pages: DS.hasMany('page', {async: true})
});
MyApplication.Page = DS.Model.extend({
document: DS.belongsTo('document', {async: true}),
title: DS.attr('string'),
params: DS.attr(),
objects: DS.attr()
});
E as rotas:
MyApplication.Router.map(function () {
this.resource('document', {path: '/document/:document_id'});
});
MyApplication.Document = Ember.Route.extend({
model: function (params) {
return this.store.find('document', params.document_id);
}
});
Quando carrego o documento 1, a chamada do aplicativohttp://www.myserver.com/api/document/1
.
O problema é que, quando eu quero encontrar uma página do documento, ele chama
http://www.myserver.com/api/pages/ID
ao invés de
http://www.myserver.com/api/document/1/pages/ID
O URL aninhado de teses é importante no meu aplicativo.
Encontrei coisas diferentes sobre o assunto, como adicionarlinks
na resposta JSON:
{
"document": {
"id": "1",
"title": "Titre du document",
"pages": ["1", "2", "3"],
"links": {"pages" : "pages"}
},
Mas quando eu ligo para as páginas, ele solicitahttp://www.myserver.com/api/document/1/pages
sem o id.
Também tento especificar o documento quando solicito a página:
this.store.find("page", 1, {document:1});
Não foi possível encontrar uma documentação completa sobre esse assunto; portanto, se alguém puder me explicar o que há de errado, ficarei feliz.
Obrigado.