在我的Sequelize模型中,我在一个Votes
的联接表中有很多关联,当User
对Response
进行投票时,该关联会存储,并存储投票,true
赞成,false
赞成。
投票模型和关系定义如下:
// vote.js
module.exports = (sequelize, DataTypes) => {
return sequelize.define('Vote', {
upVote: {
type: DataTypes.BOOLEAN,
allowNull: false
}
})
}
// user.js
models.User.belongsToMany(models.Response, {
through: models.Vote,
as: 'Votes'
})
// response.js
models.Response.belongsToMany(models.User, {
through: models.Vote,
as: 'Votes'
})
一切正常,直到用户更改投票为止。如果按下了上/下投票按钮,并且正在提交与该用户已经提交的值不同的值,那么我需要以某种方式更新联接表项,或者删除它并创建另一个。问题在于,尝试在表决中使用“销毁”或“更新”会导致未知的方法错误。处理这个问题的正确方法是什么?