2016-05-06 2 views
0

Sequelize、HAPI、MySQLを使用しています。Sequelize - M:Mの参加表へのアクセス方法

私は自動的に作成されるリンクテーブルを介してM:Mを持っている2つのモデルを持っています。

これは私がMを作る方法である:M:

Project.belongsToMany(models.ProjectTag, {through: 'ProjectToProjectTags'}); 
ProjectTag.belongsToMany(models.Project, {through: 'ProjectToProjectTags'}); 

という記述はProjectToProjectTagsと呼ばれる第3のテーブルを作ります。私はタグを作成し、プロジェクトに割り当てたいとき

は今、私は次のコードを試してください:

models.ProjectToProjectTag.create 

newTag.TagName = request.payload.tagname; 
    newTag.TagDescription = request.payload.tagdescription; 

    models.ProjectTag.create(newTag).then(function (newTagCreated) { 
     var newTagToProject = {}; 
     newTagToProject.ProjectTagId = newTagCreated.id; 
     newTagToProject.ProjectId = ProjectId; 
     models.ProjectToProjectTag.create(newTagToProject).then(function 
     (newTagCreated) { 
      response(newTagCreated).code(200); 
     }) 
    }) 

コードは、第二のラインを作成で失敗しますProjectToProjectTagモデルは自動的に作成されたため存在しません。このアップデートはどのようにして行うことができますか?

答えて

0

モデルProjectToProjectTagsが作成されますが、ProjectToProjectTagを使用するとします。あなたはProjectToProjectTags(複数形)に変更する必要があります。

ので

models.ProjectToProjectTags.create 

代わりの

models.ProjectToProjectTag.create 
+0

はい、それはコード内の間違いです。ただし、テーブルProjectToProjectTagsが作成されますが、そのような名前を持つモデルはありません。可能であれば生の質問を避けたいと思います。 –

+0

'ProjectToProjectTags'というモデルを含むファイルが実際にありますか?なぜなら、 'ProjectToProjectTags'というテーブルが作成されていると思いますが、実際のモデルはありません。 http://docs.sequelizejs.com/en/latest/docs/associations/#nm –

+0

私は実際のファイルを持っていません。私はそれが必要ですか?はいの場合、私はそれに何を入れるべきですか? –

関連する問題