1

我有一个一对多关系的类别模型和发布模型。使用ActiveRecord获取父母集合的孩子

我想拥有一组特定类别的所有帖子。

我想要结果是一个ActiveRecord对象能够做进一步的查询。

现在,我使用.map像这样

categories.map{|c| c.posts.order(position: :asc)} 
+0

问题是什么? – Pholochtairze

+0

如何使用ActiveRecord获得父母集合的所有孩子? –

回答

-1

首先找到所有你感兴趣的类别,并获得IDS:

category_ids = Category.where('name like ?', '%foo%').pluck(:id) 

然后,只需查询该帖子在category_id包含在此列表中的ID:

posts = Post.where(category_id: category_ids) 

T他是一个AR对象,所以你可以保持等增加orderwhere和:

posts.order(position: :asc) 
+0

你忘了订购帖子 –

+1

添加了订单部分。谢谢。 –

2

使用嵌入式查询帖子,如下:

Post.where(category_id: Category.all.pluck(:id)).order(position: :asc)