续集Model.hasOne错误:Model与ModelTwo没有关联

我已经将sequelizejs集成到了我的快速框架中。 我得到了所有的模型configuration,并试图build立我的第一个查询。

我不断收到错误“错误:模型与ModelTwo没有关联!”

app.get('/',function(req,res){ db.Member.findAll({include:[{model:db.MemberProfile,as:'Profile'}]}) .success(function(users){ if(users){ res.json(users); }else{ res.send('no users'); } }); }); 

// model.js

 module.exports = function(sequelize,sql) { return sequelize.define('Model', { //attributes }); Model.hasOne('ModelTwo',{foreignKey:'model_id'}); }; 

//model_two.js

 module.exports = function(sequelize,sql) { return sequelize.define('ModelTwo', { //attributes }); //no relationship defined. Tried ModelTwo.hasMany('Model',{foreignKey:'id'}); //but it yields the same resulting error }; 

任何想法可能会出错? 我正在使用最新版本的sequelize 1.7.0-rc6。

这实际上是另一种引发相同错误的情况,

当我尝试使用包含模型时的别名选项时,我遇到了同样的问题。 只要您使用默认名称,这不会引发错误,但如果您尝试使用其他名称,则会发生错误。

解决scheme,

它清楚地说

如果关联是别名(使用as选项),则在包含模型时必须指定此别名。

这意味着,反之亦然

如果在包含时要为模型生成别名,则它必须是别名(使用as选项)。

我想到了。 看来我需要在模型定义中使用以下内容来添加关联,而不是文档中简单的Model.hasOne(bla)。

 classMethods:{ associate:function(models){ Model.hasOne(models.ModelTwo,{foreignKey:'foreign_key'}) } } 

这段代码是在他们的网站的快速教程,而不是在协会文件。