Итак, это мой ответ json:
вещь:
{
"data": {
"id": 1,
"username": "rodzzlessa",
"slug": "rodzzlessa"
}
}
коллекция:
{
"data": [
{
"id": 34,
"name": "HDG common nails 50lbs",
"slug": "hdg-common-nails-50lbs4569",
"description": "Accusantium ipsam impedit omnis sint dolorum.",
"image_src": "nail-box-angle.png",
"categories": {
"data": [
{
"id": 2,
"name": "nails",
"image_src": "nails-icon.png"
}
]
}
}
]
}
Я смог сделать сериальчик для основного ответа:
export default DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
extractArray: function(store, typeClass, payload) {
payload.products = payload.data;
delete payload.data;
return this._super(store, typeClass, payload);
}
});
Все отлично работает, с чем у меня проблема, так это с отношениями в данном случае categories: DS.hasMany('category')
. Ошибка, которую я получаю:
A (subclass of DS.Model) record was pushed into the store with the value of categories being '{data: [object Object]}', but categories is a hasMany relationship so the value must be an array.
Итак, мои вопросы: какой метод мне следует отредактировать, чтобы иметь возможность сериализовать отношение так же, как я сделал это с его родителем? Я добавил DS.EmbeddedRecordsMixin
, чтобы упростить себе жизнь в отношениях.
normalizeRelatedArrays
, перебирал ключи полезной нагрузки, искал дочерние элементы, содержащие ключdata
в качестве значения, и удалял его. В конце концов, Ember ожидает иметь категории: [ {... item 1}, {... item 2}] - person enspandi   schedule 01.06.2015