我有一个这样的余烬模型:
var attr = DS.attr,
hasMany = DS.hasMany,
belongsTo = DS.belongsTo;
App.Message = DS.Model.extend({
message: attr(),
user: belongsTo('user'),
inquiry: belongsTo('inquiry')
});
我想像这样创建记号:
var createMessage = this.store.createRecord('message', {
'message': "test message",
'user': 1,
'inquiry': 1
});
createMessage.save();
我知道这个问题已被问过几次,但我找不到任何明确的解决方案。有人可以形容我为什么会发生这种错误以及解决方案是什么。我使用的是 Ember:1.6.1和Ember-data:1.0.0-beta.5
答案 0 :(得分:0)
当我使用createRecord()
关系时,我手动构造每个对象。有几种不同的方法可以做到这一点:
有关向hasMany
关系添加元素的示例,请参阅Ember.js & Ember Data: How to create record with hasMany relationship when the parent and child don't exist yet
或者这是处理belongsTo
关系时的另一个例子:
var message = this.store.createRecord('message');
var user = this.store.createRecord('user');
message.set('user', user);
最终,Ember可以序列化这个DS.Model
只有一个id号码,但在内部,它需要一个实际链接到实际对象。
更新:(贷记为@ Craicerjackless)
如果用户确实存在并且您拥有ID:
var user = this.store.find('user', 1).then(function(user){
message.set('user, user);
});
这会通过id“1”获取用户,然后在找到用户后将其设置为模型的用户。