想象一下我有两个模型:
var Movie = sequelize.define('movies', {
/* model definition */
})
var Genre = sequelize.define('genres', {
/* model definition */
});
Movie.hasMany(Genre);
Genre.hasMany(Movie);
如果我想规定一部电影必须至少有一个流派,我该怎么做?
我看过明显的地方。我最初的想法是 build()、validate() 和 save(),但是查看源代码 .validate() 仅适用于模型定义中定义的字段。
例如
Genre.find({where:{'name':'horror})
.success(function (horrorGenre) {
var movie = Movie.build({..});
movie.addGenre(horrorGenre);
if (! movie.validate()) { // This doesn't consider related data
movie.save();
}
});
所以我想我需要实现某种自定义验证机制,但我不完全确定从哪里开始。
注意我正在维护我自己的 Sequelize 分支,所以这更多的是一个问题,即我如何修改 Sequelize 源代码以完成我想要它做的事情,而不是把一个 hacky 可靠的实现放在一起。