Паруса 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 ответ

Похоже, что у вас есть опечатка, документация говорит, что вам нужно написать правило "доминирующее: истинное", а не "доминирующее: истинное".

Другие вопросы по тегам