Поля, которые являются отношениями, не отображаются при создании обратного вызова в 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()
на связанной коллекции.