Я использую Ember Data 1.13.7 и Ember 1.13.6 с помощью ActiveModelSerializer и EmbeddedRecordsMixin.Ember Data EmbeddedRecordsMixin не сохранит только что созданные записи
У меня есть 2 модели:
// models/post.js
export default DS.Model.extend({
//bunch of attrs
commentStuff: DS.belongsTo('commentStuff', {async:true})
}
и
//models/comment-stuff.js
export default DS.Model.extend({
//bunch of attrs
post: DS.belongsTo('post', {async: true))
}
в моем сериализатором у меня есть
export default DS.ActiveModelSerializer.extend(DS.EmbeddedRecordsMixin, {
isNewSerializerAPI: true,
attrs: {
commentStuff: {serialize: 'records', deserialize: 'ids'}
},
keyForAttribute(attr){
if(attr === 'commentStuff'){
return 'comment_stuff_attributes';
} else {
return this._super(attr);
}
}
});
Это отлично работает, когда я редактировать существующие записи, а затем post.save()
, но когда я создать новые записи с:
var post = this.store.createRecord('post');
post.commentStuff = this.store.createRecord('commentStuff');
И затем заполните все их соответствующие атрибуты. Json, отправленный на сервер по адресу post.save()
, не показывает ни одного из атрибутов commentStuff
и просто возвращает null
.
{post: {
attribute1: 'whatever',
attribute2: 'smth',
attribute3: 4,
comment_stuff_attributes: null}
}
Есть ли другой способ сохранить или создать новые записи?
<3 Большое вам спасибо! Потому что Ember Inspector * казалось * знал связанные записи, я предположил, что часть, вероятно, не проблема. Я так рад! – Confused