我在 Sails.js version 0.10-rc5 中的关联模型方面有一个问题。我正在构建一个应用程序,其中多个模型彼此相关联,我已经到达了需要嵌套关联的地步。
这里有三个部分:
首先有类似博客文章的内容,由用户编写。在博客文章中,我想显示与用户相关的信息,例如他们的用户名。现在,这里一切都运行良好。直到下一步:我正在尝试显示与帖子关联的评论。
评论是一个名为 Comment 的单独模型。每个评论也与作者(用户)相关联。我可以轻松显示评论列表,但是当我想显示与评论相关联的用户信息时,我无法弄清楚如何填充评论和用户信息。
在我的控制器中,我正在尝试做这样的事情:
Post
.findOne(req.param('id'))
.populate('user')
.populate('comments') // I want to populate this comment with .populate('user') or something
.exec(function(err, post) {
// Handle errors & render view etc.
});
在我的文章“展示”操作中,我试图像这样检索信息(简化):
<ul>
<%- _.each(post.comments, function(comment) { %>
<li>
<%= comment.user.name %>
<%= comment.description %>
</li>
<% }); %>
</ul>
但是comment.user.name将会是未定义的。如果我尝试访问'用户'属性,例如comment.user,它将显示它的ID。这告诉我当我将评论与另一个模型关联时,它不会自动填充用户信息到评论中。
有没有什么好的解决方法呢?
提前感谢!
P.S.
为了澄清,这是我在不同模型中基本设置关联的方式:
// User.js
posts: {
collection: 'post'
},
hours: {
collection: 'hour'
},
comments: {
collection: 'comment'
}
// Post.js
user: {
model: 'user'
},
comments: {
collection: 'comment',
via: 'post'
}
// Comment.js
user: {
model: 'user'
},
post: {
model: 'post'
}
_.pluck(results.post.comments, 'user')
?我没有看到results
在哪里被声明过。 - OneHoopyFrood