2014-05-23 58 views
1

我使用Sails @ beta 0.10.0-rc5,我升級到了rc7,並且我的單元測試在多對多關聯上失敗!sails js 0.10.0-rc7無法刪除多對多關聯

我有'中心'&'老師'模型之間的多對多關係。

**我添加調試結論BELOW **

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"); ...}); 

OUTPUT:

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] ] 

** DEBUG結論**

水線\ LIB \ waterline \ model \ 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); 

OUTPUT:

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

問題(我猜測)

從remove.js最後的輸出打印從center.save的 「IN保存功能」 文本後( )

有什麼想法?

+0

你的問題是什麼?保存時,教師是否不被從中心移除?請注意,調用實例上的remove參數實際上並不會從該實例中刪除關聯的模型;它只是在內部設置標準來在'.save()'被調用時堅持刪除。 – sgress454

+0

是的,老師不會從集合中刪除(它在rc5中工作!)。即使在調用save()之後,教師也不會被刪除。這是一個公開的問題,在rc5中得到修復,但現在又到了。再次,如果我降級到rc5,相同的代碼會通過。 – user2867106

+0

此外,我完全按照這裏的文檔:https://github.com/balderdashy/waterline-docs/blob/master/associations.md – user2867106

回答

0

看起來像這是Waterline中的一個錯誤,因爲detailed in this report。感謝您的報告和您的支持 - 錯誤已被修補,並且很快就會推出新的RC。

addAssociations: ['buildAssociationOperations', 'updateRecord', function(next, results) { 

或退房水線的主分支:在此期間,您可以通過在的lib /水線/模型/ lib中/ defaultMethods/save.js水線RC4的變化的線104自己申請the patchhttps://github.com/balderdashy/waterline.git並替換您的Sails安裝的node_modules文件夾中存在的副本。