我正在尝试从他们的网站扩展 GeddyJS Todo 教程。我在 Todo 项目中添加了另一个模型 Project,并希望以 Todo-hasOne-Project 的方式在 Todo 和 Project 之间建立关系。
这是我的创建控制器方法中的代码,我在保存 Todo 项后尝试设置关系:
todo.save(function(err, data) {
if(err) {
params.errors = err;
self.transfer('add');
} else {
geddy.model.Project.getProjectById(todo.parent, function(err, project) {
if(err) {
params.errors = err;
self.transfer('add');
}
else {
todo.setProject(project);
self.redirect({ controller: self.name });
}
});
}
});
我正在使用一个类方法(getProjectById),它采用 todo 的父属性(项目的 id)从数据库中获取项目。
在我的 Todo 类文件中,我的 hasOne 关系定义如下:
this.hasOne('Project');
我不断收到以下编译器错误:
c:\Program Files (x86)\nodejs\node_modules\geddy\node_modules\model\lib\index.js:254
throw new Error('Item cannot have a hasOne/hasMany association ' +
^
Error: Item cannot have a hasOne/hasMany association if it is not yet saved..
事实证明,查找示例文档很困难,所以我想我会问网络上最强大的社区。
有人知道我错过了什么吗?