我有两个对象Assignment
和Tags
的直通关联。它们通过模型AssignmentTag
加入。我能读懂&在这些对象之间写得很好,但是当我尝试更新时,它不会删除see notes for .update()之前的现有关联。
我相信我应该能够将一组Tag ID传递给Assignment模型,并删除当前的关联并更新新的关联。
Assignment.update({id: req.param("assignmentId")}, {tags: tags})
.exec(function (err, updated) {
if (err) {
return res.serverError(err);
}
return res.json({
updated
}
});
Assignment.js
模型是:
module.exports = {
connection: db_connection,
tableName: 'assignments',
attributes: {
id: {
type: 'integer',
primaryKey: true,
autoIncrement: true,
unique: true
},
title: {
type: 'string'
}, // varchar(255)
description: {
type: 'text'
}, // text
// an assignment may have many tags
tags: {
collection: 'tag',
via: 'assignment',
through: 'assignmenttag'
},
}
};
Tag.js
模型是:
module.exports = {
connection: db_connection,
tableName: 'tags',
attributes: {
id: {
type: 'integer',
primaryKey: true,
autoIncrement: true,
unique: true
},
title: {
type: 'string'
}, // varchar(255)
description: {
type: 'text'
}, // text
// A tag may have many assignments
assignments: {
collection: 'assignment',
via: 'tag',
through: 'assignmenttag'
},
}
};
AssignmentTag.js
模型是:
module.exports = {
connection: db_conection,
tableName: 'assignment_tag',
attributes: {
id: {
type: 'integer',
primaryKey: true,
autoIncrement: true,
unique: true
},
assignment: {
columnName: 'assignment_id',
model: 'assignment'
},
tag: {
columnName: 'tag_id',
model: 'tag'
},
}
};
知道为什么标签关联没有放在.update()
?
更新:我在水线项目上创建了一个问题,以获得更多帮助。我已在水线问题上链接的存储库中隔离了该问题。 https://github.com/balderdashy/waterline/issues/1453
决议:水线在大约一周后响应并更新模型关联以适应此请求。请参阅问题:https://github.com/balderdashy/waterline/issues/1453。他们显然是在即将发布的版本中重写这些关联,所以这个问题应该是过时的。
答案 0 :(得分:0)
这是通过Waterline repo上发布的以下问题解决的:https://github.com/balderdashy/waterline/issues/1453。