Reputation: 1203
I am working on a meteor project.
Step 1
I've added the accounts-password and the accounts-ui packages so in order to have a users collection and an authenticating system.
Step 2
I've created a Mongo collection 'Posts' of documents with the following fields: _id, title, description and createdOn(date).
Step 3
I've created another Mongo collection 'Comments' of documents with the following fields: _id, comment ,postedOn('date') and createdBy(Meteor.user()._id)
Step 4
I've added the iron router package and set some routing. You can view a blog list and go to single post detail page. I want to give the possibility to the users who are logged in to post comments on a single comment without using the aldeed simple-schema package.
Find below some snippets from my project:
Template.posts_list.helpers({
posts:function(){
return Posts.find({}, {sort: {createdOn: -1} });
}
})
Template.comments.helpers({
comments:function(){
return Comments.find({ ????? Ho can I associate comments to a single post? });
}
})
I am wondering how can I make the proper association between the 2 collections. I would like to show only those comments associated to the related post. As of now all the comments appear to every post without distinction. Any help? Thanks
Upvotes: 3
Views: 204
Reputation: 4049
You want to add a postId to your comments schema. Then, whenever you're submitting a comment, get the _id of the post in question and send it to your meteor method where you're inserting the comment. Something like this:
// In your template events:
'submitCommentForm': function( event, template ) {
var postId = this._id; // Make sure your post data context of this form is set in a #each or #with.
Meteor.call('addComment', event.target.comment, postId, ...) // Assuming your comment is in some sort of named input with comment as the name.
}
Upvotes: 0