2017-07-25 50 views
0

我有3种型号的用户,问题和视频外键使用sequelize未分配在1:1的关联

  • 视频属于一个用户,也为一个问题
  • 用户有很多问题,而一个问题只有一个视频
  • 我已经完成了用户和视频模型之间的关联,但是对于视频问题还没有。外键已成功创建,但在创建方法时未分配questionId。

她的模型和创建函数看起来像是一个快照。 视频模型

'use strict'; 
module.exports = (sequelize, DataTypes) => { 
    var Video = sequelize.define('Video', { 
    transcription: { 
     type: DataTypes.TEXT 
    }, 
    }); 

    Video.associate = (models) => { 
    Video.belongsTo (models.Question, 
    {foreignKeyContraint : true , foreignKey: "questionId" }); 
    } 

    Video.associate = (models) => { 
    Video.belongsTo(models.User, { 
     onDelete: "CASCADE", 
     foreignKey: 'userId' 
    }); 
    } 
return Video;}; 

问题型号:

module.exports = (sequelize, DataTypes) => { 
var Question = sequelize.define('Question', { 
    text: { 
    type: DataTypes.TEXT, 
    allowNull: false, 
    } 
}); 
Question.associate = (models) => { 
Question.belongsTo(models.Script, { 
    onDelete: "CASCADE", 
    foreignKey: 'scriptId' 
}); 
} 
Question.associate = (models) => { 
Question.hasMany(models.Questionvariation, 
{ 
    foreignKey: 'questionId', 
    as: 'questions', 
}); 

}返回问题;};

对于创建功能

create(req, res) { 
return Video 
    .create({ 
    userId: req.body.user_id, 
    questionId: req.body.question_id, 
    transcription: req.body.transcription 
    }) 
    .then(video => 
    res.status(201).send(video)) 
    .catch(error => 
    res.status(400).send(error)); 
} 

视频创建但它完全忽略questionId的存在。

回答

0

好吧我解决了它,问题是我必须在Question模型中添加一个hasOne关联