2014-09-05 3 views
1

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

Quiz -> Вопросы -> Ответы

Тест:

attributes: { 

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

    } 

Вопрос:

attributes: { 

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

    } 

Ответ:

attributes: { 

    question: { model: 'Question' } 

    } 

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

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

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

ответ

1

Ok так что кажется, что я использовал парус 0.10.0 RC-7, когда я повышен до 0.10.5 проблем перестали

1

Он уверен, может. Вот простой способ сделать это.

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

Убедитесь, что вам требуется nestedPop.

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

Подробнее об этом ниже.

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

Смежные вопросы