2012-11-08 54 views
0

我正试图从他们的网站上扩展GeddyJS Todo教程。我为Todo项目添加了另一个模型Project,并希望以Todo-hasOne-Project的方式建立Todo和Project之间的关系。设置hasOne关系GeddyJS

下面是我创建的控制器方法的代码,我尝试设置的关系了待办事项被保存后:这需要待办的parent属性

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) (项目的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.. 

查找按实例文档已被证明很难,所以我想我会问网络上最强大的社区。

任何人都知道我错过了什么?

回答

1

你还在遇到这个问题吗?如果是这样你可以尝试运行

$ npm update -g geddy

这很可能会解决您的问题。