所以这是我的问题,我不确定如何正确创建属于的模型的记录。我有2个型号。
App.Group = DS.Model.extend({
peeps: hasMany('people'),
});
App.People = DS.Model.extend({
group: belongsTo('group')
});
所以在应用程序中我可以做2种方式
var group = someGroup; // this is a reference to an actual group record
var record = store.createRecord('people', { group: group});
然后'belongsTo'在整个应用程序中正常工作,但是当我尝试保存发送回服务器的json时
{ 'people' : { 'group' : { //group values except id, since ember data
doesn't try and serialize the belongsTo record } } }
那么我无论如何都不知道People记录应该保存到哪条记录。
或者我可以使用id
创建记录 var group = someGroup; // this is a reference to an actual group record
var record = store.createRecord('people', { group: group.get('id')});
但是我不能再使用该记录的属于正确的了。它没有任何联系,只是一个简单的问题。然而,当我保存时,我得到{'people':{'group':id}}。
直到我弄清楚,我添加了一些可怕的hackery
//weird hackary for a sec while I figure out ember data.
record.set('group', group.get('id'));
record.save().then(function(){
record.set('group', group);
});
有任何建议/想法吗?
(作为旁注,我可能会看到我是否设置了id,然后保存,它可能会根据服务器的结果重新加载然后连接belongsTo,但这是假设我在创建后立即保存,我不想假设)
答案 0 :(得分:1)
原来我在模型中定义了两次属性,一个是belongsTo
,另一个是attr
。
App.People = DS.Model.extend({
group: DS.belongsTo('group')
group: DS.attr() <---- whoops
});
App.Group = DS.Model.extend({
peeps: DS.hasMany('people'),
});
App.People = DS.Model.extend({
group: DS.belongsTo('group')
});