2017-03-19 10 views
2

多対多の関係を持つ2つのモデルを続けることができます。 Sequelizeは結合テーブルを正しく作成しましたが、挿入することはできません。私は文書のこのセクションを熟考しています:http://docs.sequelizejs.com/en/latest/docs/associations/#creating-with-associationsしかし、私は彼らの例に基づいて動作するように何かを得ることができません。残念ながら、多対多の例はありません。結合テーブルへの挿入の後継(多対多)

次はsetModel関数を使用しようとしましたが、それは私が理解できない後遺症のコードの深いところからエラーを生成しています。そのコードは以下の通りです。

私の2つのモデルは、コインと元帳です。

Ledger.findById(22).then(ledger=>{ 
    var c1 = Coin.findById(1); 
    var c2 = Coin.findById(2); 
    ledger.setCoins([c1,c2]).then(sc=>{ 
     console.log(sc); 
    }); 
}); 

私のモデルは、このコードを使用して相互に関連しています

Ledger.belongsToMany(Coin,{ through: 'ledger_coin'}); 
Coin.belongsToMany(Ledger, {through: 'ledger_coin'}); 

誰も私にいくつかの提案を与えるか、書くことget機能や関連のオプションを使用してのいずれかのために右のトラックに私を指すことができますジョインテーブルに?私はカスタム関数を書くことができたが、それを行う方法がなければならないことを知っている。

答えて

5

まあ、上記のsetCoinsの問題を解決しました。どうやらそれはID番号ではなく、オブジェクトを取るので、これは動作します:

Ledger.findById(22).then(ledger=>{ 
    ledger.setCoins([1,2]).then(sc=>{ 
     console.log(sc); 
    }); 
}); 

私はまだかかわらず、含まれており、より良い団体理解したいと思います。

関連する問題