Могут ли паруса заселять ассоциации глубиной более одного уровня?

Я возился с выпуском парусов v0.10 и столкнулся с загадочной проблемой. У меня есть отношения с приложением, которое я создаю, которое представляет собой простое приложение-викторину. Проблема возникает вокруг структуры моих моделей и ассоциаций:

Викторина -> Вопросы -> Ответы

Контрольный опрос:

  attributes: {

    questions: {
        collection: 'Question',
        via: 'quiz'
    }

  }

Вопрос:

  attributes: {

    answers: {
        collection: 'Answer',
        via: 'question'
    },
    quiz: { model: 'Quiz' }

  }

Отвечать:

  attributes: {

    question: { model: 'Question' }

  } 

Я опустил остальную часть кода модели для ясности.

Теперь проблемы, когда я получаю ресурс в API/викторине, вопросы заполняются, но ответов нет. Я где-то читал, что в парусах/ватерлинии пока нет вложенных моделей, так ли это на самом деле?

Даже если я перехожу к API/вопросу, я получаю вопросы, но без ответов, в этом случае я бы не считал ответ вложенным. Кажется, что независимо от того, что я делаю, я не могу заставить паруса заполнять ответы вопросами, но он всегда будет заполнять вопросы в викторине.


person AggggggghFuuuuuuuuuuuuu    schedule 05.09.2014    source источник


Ответы (2)


Конечно может. Вот простой способ сделать это.

getPopulatedQuiz: function(quizId) {
  return Quiz.findOne(quizId)
  .populate('questions')
  .then(function(quiz) {
    return nestedPop(quiz, {
      questions: [
        'answers'
      ]
    }).then(function(quiz) {
      return quiz;
    });
  });
}

Убедитесь, что вам требуется вложенныйPop.

var nestedPop = require('nested-pop');

Вы можете найти больше информации об этом ниже.

https://www.npmjs.com/package/nested-pop

person Clay Risser    schedule 19.01.2017
comment
Как я могу использовать ваш модуль NPM для получения связанных данных 5 уровней? - person Mayur Shah; 03.12.2018

Итак, кажется, что я использовал паруса 0.10.0 rc-7, как только я обновился до 0.10.5, проблемы прекратились.

person AggggggghFuuuuuuuuuuuuu    schedule 05.09.2014