1

背景:帖子通過CommunityPosts有許多社區。我瞭解以下查詢返回與這些community_id中的任何一個關聯的帖子。使用所有關聯ID查找對象的查詢(Rails 4)

Post.joins(:communities).where(communities: { id: [1,2,3] }) 

目標:我想要查詢與數組中所有三個community_ids關聯的帖子。社區1,2和3作爲協會的帖子

編輯:請假定數組的長度未知。用於解釋目的這個數組。

回答

1

試試這個,

ids=[...] 
Post.joins(:communities).select(「count(communities.id) AS cnt」).where(id: ids).group(‘post.id’).having(cnt: ids.size) 
1
ids = [1, 2, 3] # and etc 
Post.joins(:communities).where("communities.id IN ?", ids) 

希望它幫助。