可以航行更深层次的联系吗?

我正在搞v0.10发布的风帆,我遇到了一个令人困惑的问题。 我与我正在build设的应用程序有一个关系,这是一个简单的测验应用程序。 这个问题出现在我的模型和协会的结构上:

测验 – >问题 – >答案

测验:

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

题:

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

回答:

  attributes: { question: { model: 'Question' } } 

为了清楚起见,我已经遗漏了其余的模型代码。

现在的问题是,当我在api / quiz中检索资源时,问题被填充,但是没有答案。 我在某处读到,帆/水线没有嵌套的模型人口,这是真的吗?

即使我去api /问题,然后我回来的问题,但没有答案,在这种情况下,我不会把答案视为嵌套。 看来,无论我做什么,我都无法让答案填充到问题中,但是它总会在测验中填充问题。

好吧,看来我使用风帆0.10.0 RC-7,一旦我升级到0.10.5问题停止

当然可以。 这是一个简单的方法来做到这一点。

 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'); 

你可以在下面find更多关于它的信息。

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