1

私は Sails@beta 0.10.0-rc5 を使用しています。rc7 にアップグレードしたところ、多対多の関連付けで単体テストが失敗しました。

「センター」モデルと「教師」モデルの間に多対多の関係があります。

** 以下にデバッグの結論を追加しました **

CenterController.js:

sails.log.info("before remove teachers: ", center.teachers);
sails.log.info("removing teacher = '", req.param('teacher_id'));
center.teachers.remove(req.param('teacher_id'));
sails.log.info("after remove teachers: ", center.teachers);
center.save(function(err) {if(err)... sails.log.info("IN SAVE FUNCTION"); ...});

出力:

before remove teachers: [ { id: '537f19dbeb09ff341598c77b' },
add: [Function: add],
remove: [Function: remove] ]
removing teacher = 537f19dbeb09ff341598c77b
after remove teachers: [ { id: '537f19dbeb09ff341598c77b' },
add: [Function: add],
remove: [Function: remove] ]

**デバッグの結論**

ウォーターライン\lib\ウォーターライン\モデル\lib\associationMethods\remove.js

// line 240
// Build up criteria and updated values used to create the record 
var criteria = {};
criteria[associationKey] = pk;
criteria[attribute.on] = this.proto[this.primaryKey];
console.log('criteria: ', criteria);

出力:

criteria: { teacher_centers: '537f24b98e64e7fc1de20718',
center_teachers: '537f19dbeb09ff341598c77b' }

問題(私の推測)

remove.js からの最後の出力は、 center.save() からの「IN SAVE FUNCTION」テキストの後に出力されます。

何か案が?

4

1 に答える 1