2014-09-05 51 views
1

我搞亂了v0.10發佈的風帆,我遇到了一個令人費解的問題。我與我正在構建的應用程序有關係,這是一個簡單的測驗應用程序。產生的問題是在我的模型和協會的結構:可以開啓更深層次的填充關聯嗎?

測驗 - >問題 - >答案

測驗:

attributes: { 

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

    } 

問:

attributes: { 

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

    } 

答:

attributes: { 

    question: { model: 'Question' } 

    } 

爲了清晰起見,我省略了其餘的型號代碼。

現在的問題是,當我在api/quiz檢索資源時,問題被填充,但沒有答案。我在某處讀到,帆/水線上沒有嵌套的模型人口,這是真的嗎?

即使我去api /問題,然後我回來的問題,但沒有答案,在這種情況下,我不會認爲答案是嵌套的。看起來無論我做什麼,我都無法讓風帆將答案填入問題中,但它總會在測驗中填充問題。

回答

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