Я использую платформу электронной коммерции 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_ids, а не ЛЮБОЙ из taxon_ids.
Как можно изменить приведенный выше запрос @s Similar_products так, чтобы он возвращал только те объекты, которые соответствуют всем числам в массиве, вместо того, чтобы возвращать объекты, которые соответствуют хотя бы одному?