Я действительно не понимаю, что здесь ...Ember-данные: Deserialize встроенный модель
У меня есть следующий код:
App.Instance = DS.Model.extend({
hash: DS.attr('string'),
users: DS.hasMany('user', { embedded: 'always' })
});
App.User = DS.Model.extend({
name: DS.attr('string'),
color: DS.attr('string'),
lat: DS.attr('number'),
lng: DS.attr('number'),
instance: DS.belongsTo('instance')
});
App.InstanceSerializer = DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
attrs: {
users: { embedded: 'always' }
}
});
И пример, как так:
var instance = {
hash: "68309966ec7fbaac",
id: "54b4518fcbe12d5160771ebe",
users: [{
color: "#9E463C",
id: "78b662bc56169a96",
lat: 36.5299487,
lng: -6.2921774,
name: "User 1"
},{
color: "#9E463C",
id: "78b662bc56169a96",
lat: 36.5299487,
lng: -6.2921774,
name: "User 2"
}]
}
Но когда я хочу store.push('instance', instance);
, я получаю:
Uncaught Error: Assertion Failed: Ember Data expected a number or string to represent the record(s) in the
users
relationship instead it found an object. If this is a polymorphic relationship please specify atype
key. If this is an embedded relationship please include theDS.EmbeddedRecordsMixin
and specify theusers
property in your serializer's attrs
Где ошибка?
Чтение из всех этих источников, которые всегда используют другую стратегию:
- http://emberjs.com/api/data/classes/DS.EmbeddedRecordsMixin.html
- How to make embedded hasMany relationships work with ember data
- Ember-data Serialize/Deserialize embedded records on 3rd level
Спасибо много
В объекте экземпляра есть ошибки. Посмотрите на строку id и пропущенную запятую. Кроме того, указание идентификатора вашего экземпляра и пользователей может испортить хранилище. Попытайтесь изменить эти идентификаторы на новый атрибут, который представляет, на самом деле этот идентификатор. – rogMaHall
Спасибо за ответ. Ошибки экземпляра были копированием опечатки с консоли. Я попытался удалить идентификатор пользователя, но это не поможет. Если я удалю идентификатор из экземпляра, я получаю сообщение «Неиспользуемая ошибка: утверждение не выполнено: вы должны включить идентификатор, например, в объект, переданный push». –