2014-04-24 60 views
0

我正在开发一个应用程序sails.js测试版和mongodb。 我在多对多关联中有两个模型,我可以使用.add()和.populate()方法成功地关联和填充这些模型的实例。现在我的问题是.remove()方法似乎什么都不做。Sails.js 0.10.0-rc5多对多关联:删除

这里的模型:

//Menu.js 
module.exports = { 
    schema : true, 
    attributes: { 
    name: { 
     type: 'string', 
     minLength: 3, 
     required: true 
    }, 
    dishes: { 
     collection: 'dish', 
     via: 'menus', 
     dominant: true 
    } 
    } 

}; 

//Dish.js 
module.exports = { 
schema : true, 
attributes: { 
    name: { 
     type: 'string', 
     minLength: 3, 
     required: true 
    }, 
    description: 'string', 
    menus: { 
     collection: 'menu', 
     via: 'dishes' 
    } 
    } 

}; 

这里控制器的动作......

addDishToMenu: function(req,res,next){ 
    Menu.findOne(req.param('menu')).populate('dishes').exec(function(err,bean){ 
     if(err) return next(err); 
     if(!bean) return next(); 
     bean.dishes.add(req.param('dish'));    
     bean.save(function(err) { 
      if(err) return next(err); 
      res.redirect('/main/dishes/'); 
     }) 
    }) 
}, 

removeDishFromMenu: function(req,res,next){ 
    Menu.findOne(req.param('menu')).populate('dishes').exec(function(err,bean){ 
     if(err) return next(err); 
     if(!bean) return next(); 
     bean.dishes.remove(req.param('dish')); 
     bean.save(function(err) { 
      if(err) return next(err);     
      res.redirect('/main/menu/' + req.param('menu')); 
     }) 
    }) 
} 

我想不出什么我做错了。有任何想法吗?

+1

嗨马西莫,我在这个[回购](https://github.com/irlnathan/sails-remove-association-issue)中重新创建了你的问题,并发布了一个[issue](https://github.com/balderdashy/sails-mongo/issues/140)在sails-mongo中。 – JohnGalt

+0

嗨,John,谢谢你的回答,所以问题出在mongodb适配器上,我会跟着你在sails-mongo上发布的问题。同时,我会尝试找出一种解决方法。 –

回答

1

此问题已得到解决,我通过之前发送的回购确认了它。如果你更新帆,水线和帆mongo版本,你应该很好去。

+0

太棒了!我为这个愚蠢的问题感到抱歉,但哪一个是更新帆,水线和帆-mongo的最佳方式?感谢你的努力...... –

+0

这取决于你想要东西的稳定性......可能是获得最新最快的最快捷方式,你可以从项目中删除这些模块(npm cache clear for good measure),然后克隆每个repo的master分支最终使用npm install。 – JohnGalt

+0

谢谢,问题解决了。 –