匹配数组中所有项目的Ruby .where和.joins查询

时间:2019-02-04 20:54:20

标签: sql ruby-on-rails postgresql spree

我正在使用Spree的电子商务框架,并且需要根据视图模板上的现有产品返回相似的产品。

现在,我有一个以各种方式构建的数组taxon_ids。我在此查询中使用它:

@similar_products = Spree::Product.joins(:taxons).where(spree_products_taxons: {taxon_id: taxon_ids  })

这将查询Index Cond: (taxon_id = ANY ('{145,27,54}'::integer[]))

,但它需要返回与 ALL 个taxon_id匹配的对象,而不是与taxon_ids的 ANY 匹配的对象。

如何将上面的@similar_products查询修改为仅返回匹配数组中所有数字的对象,而不返回至少匹配一个的对象?

0 个答案:

没有答案