患者にタグを追加する必要があるのは簡単です。多対多の関連付けに関する Sails と Waterline のドキュメントに従いましたが、ある時点で失敗しています (エラーはありません)。データストレージに MongoDB を使用しています。以下のコード:
タグモデル
module.exports = {
attributes: {
name: 'STRING',
color: {
type: 'STRING',
defaultsTo: '#777777'
},
tagged: {
collection: 'patient',
via: 'tags',
dominant: true
}
}
};
患者モデル
module.exports = {
attributes: {
name: 'STRING',
tags: {
collection: 'tag',
via: 'tagged'
}
}
};
そして、これはデータを関連付けようとするコントローラー メソッドです。
module.exports = {
addToPatient: function(req, res) {
Patient.findOne({id: req.param('patientId')}).exec(function(err, patient) {
// Queue up a record to be inserted into the join table
patient.tags.add(req.param('tagId'));
// Save the user, creating the new associations in the join table
patient.save(function(err) {});
});
res.send("tag assigned");
}
};
さまざまな休憩で応答を調べましたが、すべてがうまくいっているようです。患者が見つかりました。保存機能により、患者オブジェクトにタグの関連付けが表示されますが、データベースには何も追加されません。結合テーブルが作成されているか、関連付けを示すために患者/タグ コレクションに何かが表示されると思いますが、何も表示されません。私はとても混乱しています。HTTP get を実行すると、「タグが割り当てられました」という応答が表示されます。私は何が欠けていますか?