Запрос Ruby .where & .joins, который соответствует ВСЕМ элементам в массиве - PullRequest
0 голосов
/ 04 февраля 2019

Я использую платформу электронной коммерции 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 так, чтобы он возвращал только те объекты, которые соответствуют всем числам в массиве, вместо того, чтобы возвращать объекты, которые соответствуют хотя бы одному?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...