我有一个分类模型和一个多对多关系的Post模型。
我希望获得某些类别的所有帖子。
我希望结果是ActiveRecord对象,以便能够进行进一步的查询。
现在我正在使用.map
这样
categories.map{|c| c.posts.order(position: :asc)}
答案 0 :(得分:3)
对帖子使用嵌入式查询,如下所示:
Post.where(category_id: Category.all.pluck(:id)).order(position: :asc)
答案 1 :(得分:-2)
首先找到您感兴趣的所有类别并获取ID:
category_ids = Category.where('name like ?', '%foo%').pluck(:id)
然后只查询这个ID列表中包含category_id
的帖子:
posts = Post.where(category_id: category_ids)
这是一个AR对象,因此您可以继续添加order
或where
等等:
posts.order(position: :asc)