0

假设我有 Post、Category 和 Categorizations 模型。

一个帖子可以通过分类有很多类别。

现在,我怎样才能提取出与一组类别中的至少一项匹配的所有帖子?

例子:

Post 1 has categories 2,5,6
Post 2 has categories 1,5,9
Post 3 has categories 2,4,8
Find posts that match 3,5

我希望退回帖子 1 和 2。

谢谢!

4

1 回答 1

1

假设这CategorizationPost和的连接模型Category

Post.joins(:categorizations).where(:categorizations => {:category_id => [3, 5]})

如果不是,那么Categorization实际上has_many :categories

Post.joins(:categories).where(:categories=> {:id => [3, 5]})

请注意,第二种方法也适用于第一种情况,但是它需要 2 个 SQL 连接,因此可能效果不佳。

于 2013-05-30T04:18:18.920 回答