我正在开发一个应用程序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'));
})
})
}
我想不出什么我做错了。有任何想法吗?
嗨马西莫,我在这个[回购](https://github.com/irlnathan/sails-remove-association-issue)中重新创建了你的问题,并发布了一个[issue](https://github.com/balderdashy/sails-mongo/issues/140)在sails-mongo中。 – JohnGalt
嗨,John,谢谢你的回答,所以问题出在mongodb适配器上,我会跟着你在sails-mongo上发布的问题。同时,我会尝试找出一种解决方法。 –