Как добавить атрибут с массивом целочисленных данных в модели sails.js?

Я использую паруса с postgresql, и у меня есть пользователь с массивом идентификаторов групп. Я хочу сохранить идентификатор группы в пользовательской таблице. моя модель пользователя похожа на:

    module.exports = {
  attributes: {
    first_name: {
      type: 'string'
    },

    last_name: {
      type: 'string'
    },
    company: {
      type: 'string'
    },
    password: {
      type: 'string',
      minLength: 6,
      required: true,
      columnName: "password"
    },

    user_groups: {
      model: 'groups',
    }
  }

но когда я отправляю запрос типа [2], я получаю ошибку:

Не удалось использовать указанный user_groups, Ожидается идентификатор, представляющий связанную запись, или null чтобы указать, что не будет никакой связанной записи. Но указанное значение не является действительным user_groups, Вместо числа (ожидаемый тип pk) получилось: [ 2 ]

1 ответ

Решение

Чтобы связать много-к-одному в Waterline, синтаксис немного отличается. В этом объекте для этого поля вам нужно collection а также via (имя соответствующего поля в связанной коллекции). Так что в User (для соглашения, я делаю название модели в единственном числе и PascalCase) это будет что-то вроде:

user_groups: {
    collection: 'Group',
    via: 'users'
}

Хотя в Group модель, у вас есть:

users: {
    collection: 'User',
    via: 'user_groups'
}
Другие вопросы по тегам