我要找到匹配的商品多達可選標記儘可能它被所有條件標籤標記,通過匹配可選標記量責令其條件標籤數可選標記。Rails的:當在一個查詢
我想出了這個計數的可選標籤:
optional_tags = [1,2,3]
conditional_tags = [4]
products = Product.select('COUNT(*) AS count_all, products.*')
.joins(:tags).where('tags.id IN (?)', optional_tags)
.group('products.id')
.order('count_all DESC')
我順利拿到產品ID和匹配可選標記數量:
products: {30=>4, 26=>3, 29=>3, 27=>2, 28=>1}
當我嘗試添加條件標籤我只收到一個空的散列。我試着這樣說:
products = Product.where('tags.id IN (?)', conditional_tags)
.select('COUNT(*) AS count_all, products.*')
.joins(:tags).where('tags.id IN (?)', optional_tags)
.group('products.id')
.order('count_all DESC')
Rails的優化查詢,並結合所有其中部分...
我怎麼能添加條件標籤我的構建?謝謝你的幫助!
例子:
類型產品中是非常重要的,但人們不關心細節。
conditional_tags = [ 車]
optional_tags = [ 紅色, 梅賽德斯, 快速]
甲紅色汽車將是確定的,但通過奔馳紅快摩托車不應該在結果列表中,即使有更多的匹配標籤。
產品上可選標籤和條件標籤的含義是什麼?是否有可能用較少的技術術語解釋你想要做什麼? –
**條件標記**是_必須擁有_(必須連接到產品才能列出的標記)。 **可選標籤**是_nice-to-have_。最後,所有有條件的標籤和儘可能多的可選標籤都是完美的匹配......我希望它更清晰......:/ – Railsana
我最近的答案的最新版本可能就是它。如果不是,我放棄,對不起。 :) –