User モデルと Course モデルがあり、それらは多対多の関係にあるため、基本的にユーザーは複数のコースに参加でき、コースには多くのユーザー (学生) がいます。結合テーブルがあり、結合テーブルに追加情報を追加しようとしています。基本的に、ユーザーには、コースごとに質問できる質問の毎月の割り当てがあります。そこで、User_Course 結合テーブルにクォータ列を追加しました。クォータ列にアクセスできません。以下は、アイデアを与えるための関連コードです。
var User = DB.Model.extend({
Courses: function() {
return this.belongsToMany('Course', 'User_Course', 'userId', 'courseId');
},
});
var Course = DB.Model.extend({
Users: function() {
return this.belongsToMany('User', 'User_Course', 'courseId', 'userId');
}
})
User_Course は、追加のクォータ列を持つ結合テーブルです。
**User_Course:**
userId: int
courseId: int
quota: int
割り当て値を減らすことができるようにしたいと考えています。updatePivot を使用して更新することはできますが、クォータ内の値を単純に取得することはできません。値を更新するために使用しているコードは次のとおりです。
var userPromise = new User.User({userId: userId}).fetch({withRelated: ['Courses']});
userPromise.then(function(_user) {
_user.related('enrolledCourses').updatePivot({courseId:courseId, quota:1}).then(function() {
return;
})
})
ご覧のとおり、ここではクォータ値を毎回 1 に更新しています。現在のクォータ値をプログラムで判断し、それを減らしたいと思います。