我正在尝试使用下两个模型中的相关关系创建一个新记录。
App.Kid = DS.Model.extend({
attribute1: DS.attr("string"),
parent: DS.belongsTo(parent)
});
App.Parent = DS.Model.extend({
attribute1: DS.attr("string"),
kids: DS.hasMany(kid)
});
我的路线如下。我在我的模板中也使用了一个动作处理程序,用于通过表单保存我的模型以及属性的新值。
App.KidRoute = Ember.Route.extend({
model: function (id) {
return this.store.createRecord('kid', {parent: id});
},
actions:{
save: function(){
this.get('currentModel').save();
}
}
});
但是我收到了这个错误。
Assertion failed: You can only add a 'parent' record to this relationship
我知道我做错了但事情是,如果parent
只是一个属性而不是belongsTo关系,它就有效。但我不想要这个。
先谢谢!
答案 0 :(得分:2)
在那段代码中:
this.store.createRecord('kid', {parent: id});
变量id可能是一些字符串,数字等。ember-data需要模型实例,因此您需要加载它。
尝试使用以下内容:
App.KidRoute = Ember.Route.extend({
model: function (id) {
var route = this;
return this.store.find('parent', id).then(function(parentModel) {
return route.store.createRecord('kid', {parent: parentModel});
});
},
actions:{
save: function(){
this.get('currentModel').save();
}
}
});