我知道这是超级基本的东西,但我似乎无法让它发挥作用。也许我的Google-fu很糟糕。我有用户和时间表,我想在创建时间轴时将时间轴与其创建用户相关联。我无法找到使这种关联发生的最佳方法。我要么无法访问ID属性,要么在创建时间轴时未设置它。我不希望将时间轴创建嵌入到保存用户之中,因为我将在几个不同的对象之间做一堆复杂的关系。这就是我到目前为止所拥有的:
型号:
var Timeline = bookshelf.Model.extend({
tableName: 'timelines',
creator: function() {
console.log("timeline model creator function called");
return this.belongsTo(User);
}
}, {
});
var User = bookshelf.Model.extend({
tableName: 'users',
timelines: function() {
return this.hasMany(Timeline);
},
}, {});
Instantion:
var user3 = new User({
username: 'user3',
email: 'email3@example.com',
password: 'password1'
}).save();
var timeline3 = new Timeline({
name: 'timeline3',
creator: user3,
start_date: '1900-01-01 00:00:00',
end_date: '1950-01-01 23:59:59',
time_scale: 1
}).save();
看起来user3是一个promise而不是模型实例,因为我得到一个错误,指出给创建者的给定值不是一个有效的整数。它具有isFulfilled和isRejected属性。
如何保存/插入新模型实例及其与另一个模型实例的关系?