Definir el modelo de datos de ascuas para la URL de descanso anidada
Estoy tratando de hacer algo que suena simple pero no puedo encontrar la solución.
Mi aplicación necesita editar documentos que contengan páginas.
Aquí está mi 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()
});
Y las rutas:
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);
}
});
Cuando cargo el documento 1, la aplicación llamahttp://www.myserver.com/api/document/1
.
El problema es que cuando quiero encontrar una página del documento, llama
http://www.myserver.com/api/pages/ID
en lugar de
http://www.myserver.com/api/document/1/pages/ID
Estas URL anidadas son importantes en mi aplicación.
Encontré diferentes cosas sobre el tema como agregarlinks
en la respuesta JSON:
{
"document": {
"id": "1",
"title": "Titre du document",
"pages": ["1", "2", "3"],
"links": {"pages" : "pages"}
},
Pero cuando llamo por las páginas, solicitahttp://www.myserver.com/api/document/1/pages
sin la identificación
También trato de especificar el documento cuando solicito la página:
this.store.find("page", 1, {document:1});
No puedo encontrar una documentación completa sobre este tema, así que si alguien puede explicarme qué está mal, estaré feliz.
Gracias.