2012-12-23 139 views
0

可以說一個作者有很多帖子,一個帖子有很多評論。 你怎麼能選擇特定作者特定幾篇文章的所有評論?選擇特定帖子的所有評論mongoid 2 rails 3.1

使用案例:我想最近的每一個作者的與標籤「軌道」

@author = Author.find(params[:author_id]) 
@posts = @author.posts.where(:tag => 'rails') 

現在

@comments = @posts.?????.where(:created_at.gte = 1.month.ago) 

回答

2

有沒有辦法做到這一點通過@posts.?????

帖子評論您應該抓取帖子ID並選擇評論

post_ids = @author.posts.where(:tag => 'rails').map(&:id) 
# In rails >= 3.2.1 you can use pluck(:id) instead of map(&:id) 

@comments = Comment.where(:post_id => post_ids, :created_at.gte = 1.month.ago) 

UPD:

@posts = @author.posts.where(:tag => 'rails') 
@comments = Comment.where(:post_id => @posts.map(&:id), :created_at.gte = 1.month.ago) 
+1

你能縮短到:Comment.where(:POST_ID => @ posts.map(&:ID)) –

相關問題