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 は親レコードだけでなく 2 つのレコードに対して POST を作成しようとしています。
編集:私の本当のユースケース
1-マスターからemberデータを構築しました
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();
joincolumn の POST が送信され、親はダーティではありません
私は何が欠けていますか?