假设我有 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。
谢谢!
假设我有 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。
谢谢!
假设这Categorization
是Post
和的连接模型Category
:
Post.joins(:categorizations).where(:categorizations => {:category_id => [3, 5]})
如果不是,那么Categorization
实际上has_many :categories
:
Post.joins(:categories).where(:categories=> {:id => [3, 5]})
请注意,第二种方法也适用于第一种情况,但是它需要 2 个 SQL 连接,因此可能效果不佳。