Паруса JS спасти много ко многим только один способ
У меня есть две модели:
user.js
module.exports = {
attributes: {
...
profile: {
model: 'Profile'
},
groups: {
collection: 'group',
via: 'users',
dominate: true
},
roles: {
collection: 'role',
via: 'users',
dominate: true
}
}};
и group.js
module.exports = {
attributes: {
...
users: {
collection: 'user',
via: 'groups'
}
}};
когда я пытаюсь добавить пользователей в группу (когда я выбираю группу и добавляю в нее пользователей), она работает так, как это должно быть,
var defer = q.defer();
baseDbContext.single(req, 'users')
.then(function(op){
if(!op.status || !op.obj) {
defer.resolve(notFound);
return;
}
op.obj.users = [];
_.each(req.users, function(item){
op.obj.users.add(item);
});
op.obj.save(function(err, obj){
if(err) defer.reject(operationResult().throwException(err));
else defer.resolve(operationResult().succeed());
});
});
return defer.promise;
но когда я пытаюсь добавить группы к пользователю (когда я выбираю пользователя и добавляю к нему группы), он молча терпит неудачу!!!
var defer = q.defer();
baseDbContext.single(req, 'groups')
.then(function(op){
if(!op.status || !op.obj) {
defer.resolve(notFound);
return;
}
op.obj.groups = [];
_.each(req.groups, function(item){
op.obj.groups.add(item);
});
op.obj.save(function(err, obj){
if(err) defer.reject(operationResult().throwException(err));
else defer.resolve(operationResult().succeed());
});
});
return defer.promise;
когда я проверяю это в консоли паруса, это показывает:
throw new Error('Unknown rule: ' + ruleName);
Error: Unknown rule: dominate
это простая вставка многие ко многим, почему она потерпит неудачу? (примечание о коде, функция baseDbContext.single находит объект по его идентификатору, а второй параметр - для заполнения)
1 ответ
Похоже, что у вас есть опечатка, документация говорит, что вам нужно написать правило "доминирующее: истинное", а не "доминирующее: истинное".