Sails.js füllt verschachtelte Assoziationen

Ich habe eine Frage zu Assoziationen in Sails.js Version 0.10-rc5. Ich habe eine App erstellt, in der mehrere Modelle miteinander verknüpft sind, und bin an einem Punkt angekommen, an dem ich irgendwie Assoziationen verschachteln muss.

Es gibt drei Teile:

Zuerst gibt es so etwas wie einen Blog-Beitrag, der von einem Benutzer geschrieben wird. Im Blogpost möchte ich die Informationen des zugehörigen Benutzers wie seinen Benutzernamen anzeigen. Jetzt funktioniert hier alles gut. Bis zum nächsten Schritt: Ich versuche Kommentare anzuzeigen, die mit dem Beitrag verbunden sind.

Die Kommentare sind ein separates Modell, das als Kommentar bezeichnet wird. Jedem von ihnen ist auch ein Autor (Benutzer) zugeordnet. Ich kann auf einfache Weise eine Liste der Kommentare anzeigen. Wenn ich jedoch die mit dem Kommentar verknüpften Benutzerinformationen anzeigen möchte, kann ich nicht herausfinden, wie der Kommentar mit den Benutzerinformationen gefüllt werden soll.

In meinem Controller versuche ich, so etwas zu tun:

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.
  });

In der Aktion "Anzeigen" meines Posts versuche ich, die folgenden Informationen abzurufen (vereinfacht):

<ul> 
  <%- _.each(post.comments, function(comment) { %>
    <li>
      <%= comment.user.name %>
      <%= comment.description %>
    </li>
  <% }); %>
</ul>

Der comment.user.name ist jedoch undefiniert. Wenn ich versuche, einfach auf die Eigenschaft 'user' zuzugreifen, z. B. comment.user, wird die ID angezeigt. Das bedeutet, dass die Benutzerinformationen nicht automatisch in den Kommentar eingefügt werden, wenn ich den Kommentar mit einem anderen Modell verknüpfe.

Jemand irgendwelche Ideale, um dies richtig zu lösen :)?

Danke im Voraus!

P.S.

Zur Verdeutlichung habe ich die Assoziationen grundsätzlich in verschiedenen Modellen aufgebaut:

// 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'
}

Antworten auf die Frage(8)

Ihre Antwort auf die Frage