O que estrutura json, deve o ember-dados "findMany" tem que sideload corretamente?
-
12-12-2019 - |
Pergunta
Eu estou fazendo a minha primeira temmuitos relação com ember-dados de e bateu o sempre divertido
"Uncaught De Erro:falha de asserção:O servidor retornou um hash com a tecla 0, mas você não tem mapeamentos"
Isso geralmente significa que eu não tenho a estrutura json, no que eu chamo de uma "brasa" formato amigável.
Eu estou construindo a minha própria RESTO adaptador para django usando o django resto do quadro, por isso estou curioso que isso deve parecer para sideload sem erro.
Atualmente o json vindo de volta, olha como o abaixo (claramente nenhum laço de volta para a sessão, mas talvez ember já sabe como ligar isso?)
[{"id":2, "nome":"FooBar"}]
Olhar para modelos como este
CodeCamp.Session = DS.Model.extend({
id: DS.attr('number'),
name: DS.attr('string'),
room: DS.attr('string'),
desc: DS.attr('string')
});
CodeCamp.Speaker = DS.Model.extend({
id: DS.attr('number'),
name: DS.attr('string'),
session: DS.belongsTo('CodeCamp.Session')
});
CodeCamp.Session.reopen({
speakers: DS.hasMany('CodeCamp.Speaker')
});
Obrigado antecipadamente
Solução
A estrutura json deve olhar como este
{ speakers: [{ id: 2, name: "FooBar" }] }
Encontrei este commit que mostra que eu só precisava quebrar a minha json dentro de um chamado dict
https://github.com/Kurki/data/commit/f59ad5bc9718634b6f3d59356deae0bf97a1bbd5
Portanto, este é meu costume json método de agora em minha django adaptador
findMany: function(store, type, ids) {
var root = this.rootForType(type), plural = this.pluralize(root), json = {};
this.django_ajax(this.buildURL(root, ids), "GET", {
success: function(pre_json) {
json[plural] = pre_json;
this.sideload(store, type, json, plural);
store.loadMany(type, json[plural]);
}
});
}