Использование Iron Router для ожидания подписки, которая зависит от данных из документа, которые поступят из другой подписки

У меня проблемы с настройкойwaitOn часть маршрута, где один из параметров подписки определяется значением из документа, полученного из другой подписки.

Коллекции в игре - Кандидаты и Интервью. На собеседовании будет один и только один кандидат. Вот некоторые примеры данных:

candidate = {
    _id: 1
    firstName: 'Some',
    lastName: 'Developer'
    //other props
};

interview = { 
    _id: 1,
    candidateId: 1
    //other props
};

Маршрут настроен следующим образом.

this.route('conductInterview', {
    path: '/interviews/:_id/conduct', //:_id is the interviewId
    waitOn: function () {
        return [
            Meteor.subscribe('allUsers'),
            Meteor.subscribe('singleInterview', this.params._id),
            // don't know the candidateId to lookup because it's stored
            // in the interview doc
            Meteor.subscribe('singleCandidate', ???), 
            Meteor.subscribe('questions'),
            Meteor.subscribe('allUsers')
        ];
    },
    data: function () {
        var interview = Interviews.findOne(this.params._id);
        return {
            interview: interview,
            candidate: Candidates.findOne(interview.candidateId);
        };
    }
});

Проблема в том, что у меня нет кандидата для передачи наsingleCandidate подписка вwaitOn метод, потому что он хранится в документе интервью.

Я думал о двух возможных решениях, но мне не очень нравится ни одно из них. Первое, чтобы изменить маршрут на что-то вроде/interviews/:_id/:candidateId/conduct, Второй - денормализовать данные и сохранить информацию о кандидате в документе интервью.

Есть ли другие варианты для достижения этой цели, кроме этих двух?

Ответы на вопрос(3)

Ваш ответ на вопрос