我正在为 Rails 3.1.1 中的 ActiveRecord 查询而苦苦挣扎。
我有 2 个模型,产品和类别,从产品到类别有一个 has_and_belongs_to_many(一个产品可以有很多类别)。
我正在尝试编写一个搜索查询,该查询将找到具有所有指定类别的产品(想想用户可以选择 X 类别进行搜索的搜索 UI)。
我可以做这个:
results = Product.joins(:category_products).where('category_products.category_id' => [1,5,8])
但这会返回具有任何这些类别的产品(即生成 SQL“IN(1,5,8)”子句)。
如何创建一个可以进行 ALL 匹配的查询?例如,查找具有所有这些 category_id 的产品...