2 つのモデルがあるとします。
var Movie = sequelize.define('movies', {
/* model definition */
})
var Genre = sequelize.define('genres', {
/* model definition */
});
Movie.hasMany(Genre);
Genre.hasMany(Movie);
映画には少なくとも 1 つのジャンルが必要であると規定したい場合、どのようにすればよいでしょうか?
私は明らかな場所を見てきました。私の最初のアイデアは、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 のソースを変更してやりたいことを実行するにはどうすればよいかという問題です。