2016-12-25 3 views
1

Iは、エンティティへの参加(USER_TAG)を介しbelongsToMany関係で互いに接続される2つのテーブル(ユーザ、タグ)を有する:sequelize - テーブルジョインを含むnmの関係で関連付けを更新する方法

sequelize.define('tag', { 
    id: { 
     type: DataTypes.INTEGER, 
     autoIncrement: true, 
     primaryKey: true 
    }, 
    type: { 
     type: DataTypes.STRING 
    } 
    }, { 
     classMethods: { 
      associate: function (models) { 
      this.belongsToMany(models.user, {as: "users", through: models.user_tag }); 
    }, 
    } 

を}

sequelize.define('user', { 
    id: { 
     type: DataTypes.INTEGER, 
     autoIncrement: true, 
     primaryKey: true 
    }, 
    name: { 
     type: DataTypes.STRING, 
    },{ 
    classMethods: { 
     associate: function (models) { 
     this.belongsToMany(models.tag, { as:"tags", through: models.user_tags }); 
     } 
    } 
} 


sequelize.define('user_tag', { 
    type: DataTypes.STRING, 
    param1: DataTypes.INTEGER, 
    priority: DataTypes.INTEGER 
    }, { 
    freezeTableName: true, 
    paranoid: true 
    }); 

次に、ユーザは、例えば、優先順位とPARAM1のための参加エンティティ(USER_TAG)上のすべての特定の情報を含むすべての彼のタグを更新することができます。

私はsetAssociation [ user.setTag(myTags)]、どのようにして一致するparam1とpriorityプロパティを設定しますか?

答えて

0

belongsToManyで新しい関係を追加すると、Sequelize's documentationによれば、オプションオブジェクトに追加の属性を渡すことができ、そのデータがスルーモデルに追加されます。

user.setTag(myTags, { param1: 1, priority: 1 }); 
関連する問題