按多对多关系过滤

时间:2017-03-09 08:11:38

标签: sql ruby-on-rails

我有2个表:PostCategory,具有多对多关系。(categories_posts是连接表)

我有一个类别ID列表[2,5,7]。如何找到连接所有类别的帖子?

例如,如果我有两个类别:foodenglish,我需要查找有关foodenglish语言的所有帖子。

我试过这个,但它没有用。 (filters是类别ID)

scope :filter_by_categories, -> filters {
  where(categories_posts_ids.contains filters)
}

has_many :categories_posts
has_many :categories, through: :categories_posts

1 个答案:

答案 0 :(得分:-1)

在Rails 5中,您可以: Post.left_joins(:categories).where(' categories_id IN?',ids)