Rails的,有属于许多,比赛的所有条件
问题描述:
我有两个型号文章和类别Rails的,有属于许多,比赛的所有条件
class Article < ApplicationRecord
has_and_belongs_to_many :categories
end
我想有1类和2关联类文章。
Article.joins(:categories).where(categories: {id: [1,2]} )
上面的代码不会做,因为如果与1类或第2类是相关联,那么它会被退回并且那不是目标的文章。两者必须匹配。
答
您只能查询第一类别的那些文章,它们也是第二类文章。
这将是这样的:
Article.joins(:categories)
.where(categories: { id: 1 })
.where(id: Article.joins(:categories).where(categories: { id: 2 }))
注意,它可以:
Category.find(1).articles.where(id: Category.find(2).articles)
,但它使更多的请求,并需要额外注意的情况下,当类别不能被发现。