Я не могу получить embedded
hasMany
для правильной работы с данными ember.
У меня есть что-то вроде этого
App.Post = DS.Model.extend({
comments: DS.hasMany('App.Comment')
});
App.Comment = DS.Model.extend({
post: DS.hasMany('App.Post'),
name: attr('string')
});
И мой API возвращает следующее для GET /post
:
[
{
id: 1
comments: [{name: 'test'}, {name: 'test2'}]
},
...
]
Мне нужно отправить это с помощью POST /post
:
[
{
comments: [{name: 'test'}, {name: 'test2'}]
},
...
]
Я хочу работать с Ember-моделями и предлагать им соответствующие запросы:
var post = App.store.createRecord(App.Post, hash_post_without_comments);
post.get('comments').createRecord(hash_comment);
App.store.commit(); // This should call the POST api
и
var posts = App.store.find(App.Post); // This should call the GET api
Когда я пытаюсь что-то вроде post: DS.hasMany('App.Post', {embedded: true})
, GET работает, но POST пытается сделать POST для двух записей не только родительской.
EDIT: Мой реальный вариант использования
1- Я только что создал данные ember от master
2- Мой адаптер: RESTAdapter
3- Сериализатор: JSONSerializer
4- Я добавил
App.MyAdapter.map('App.Join', {
columns: { embedded: 'always' }
});
5- Мои модели:
App.Join = DS.Model.extend({
rowCount: DS.attr('number'),
columns: DS.hasMany('App.JoinColumn'),
});
App.JoinColumn = DS.Model.extend({
join: DS.belongsTo('App.Join')
});
6- Когда:
var a = App.Join.find(1);
a.get('columns').createRecord({});
App.store.commit();
отправляется POST для joincolumn, а родитель не загрязнен
Что мне не хватает?