我在我的數據庫中的兩個條目如何找到標籤的數量在行爲相匹配的加標籤上
OBJ1被標記爲「你好,世界,地球」 OBJ 2被標記爲「你好」
如果我做modelName.tagged_with([「你好」,「世界」,「星球」,「地球」],:任何=>真)
我想按照從最高到最低數量的標籤匹配。 所以在這種情況下,我想訂單成爲Obj1,Obj2
我該怎麼做?有沒有辦法獲得每個返回結果匹配的標籤數量?
我在我的數據庫中的兩個條目如何找到標籤的數量在行爲相匹配的加標籤上
OBJ1被標記爲「你好,世界,地球」 OBJ 2被標記爲「你好」
如果我做modelName.tagged_with([「你好」,「世界」,「星球」,「地球」],:任何=>真)
我想按照從最高到最低數量的標籤匹配。 所以在這種情況下,我想訂單成爲Obj1,Obj2
我該怎麼做?有沒有辦法獲得每個返回結果匹配的標籤數量?
您可以調用對象tag_list
並用它來計算出多少標籤有:
tags = %w{hello world planet earth}
objs = ModelName.taggedWith(tags, :any => true)
objs.sort_by! { |o| -(tags & o.tag_list).length }
的tags & o.tag_list
得到你正在尋找標籤的路口,發現標籤,然後我們否定交點的大小以告知sort_by
(按升序排列)在前面放置較大的交點,否定結果是反轉通常排序順序的簡單方法。
語言/平臺/問題? – leppie
在軌道上的紅寶石和我使用的行爲作爲標籤 - 在寶石 – Varun