2017-02-21 14 views
0

В моем магазине spree мне нужно найти любой продукт, который имеет один или несколько тегов в списке тегов. Тэги в буйстве выполняются с помощью драгоценных камней с действиями.Найти все товары с любыми тегами в списке

Я пытался сделать это с

Spree::Product.joins("spree_taggings").where("taggings.id IN (?)", list_of_tag_ids) 

, но это не похоже на работу.

Как я могу искать товары по их тегам?

+0

Вы также можете разместить ассоциации –

ответ

1

Поиск по ID необходим? Если вы можете искать по названию, вы можете использовать построить в рамках .tagged_with

Spree::Product.tagged_with(["awesome", "cool"], :match_all => true) 

Docs: https://github.com/mbleigh/acts-as-taggable-on#finding-tagged-objects

Если поиск по ID действительно необходимо, вы можете захватить те первые, конечно.

ActsAsTaggableOn::Tag.where("id IN (?)", list_of_tag_ids).pluck(:name) 
+0

Ah, tagged_with(). Я забыл об этом. Скоро мне придется проверить это. – Qwertie