Поля, которые являются отношениями, не отображаются при создании обратного вызова в SailsJS

У меня есть следующая схема СМИ

    module.exports = {
        attributes: {
            user: {
                model: 'user',
                required: true
            },
            jobs: {
                collection: 'job',
                via: 'media'
            }
        },
        afterCreate: generateJob,
    }

Метод generateJob медиа-объект выглядит так

{
  user: '55dcd2db428f50ea1ecf670e'
}

Но поле задания не появляется, и оно мне нужно, потому что я хочу связать одно задание с носителем, а носитель не получает метод media.jobs.add().

Спасибо

1 ответ

Чтобы извлечь данные из ассоциации, вы должны вызвать .populate() Способ; Ватерлиния не заполняет эти данные автоматически (по моему скромному мнению, это слишком дорого и слишком редко, чтобы быть основной особенностью).

Где-то вдоль линии (например, в generateJob), вам нужно сделать что-то вроде этого:

Media.find(...).populate('jobs'), в какой момент вы сможете вызвать .add() а также .remove() на связанной коллекции.

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