2013-06-01 75 views
0

我有一種搜索方法,可以返回搜索項位於項目名稱或項目標記之一中的項目。下面是一個方法:無法從搜索結果中刪除重複項

def self.search(search) 
    search.blank? ? [] : list = all(:conditions => ['name LIKE ?', "%#{search.strip}%"]) 
    list_two = Illustration.tagged_with('%#{search.strip}%', :any => true) 
    ary = list + list_two 
    return ary.uniq 
end 

我也試過的list & list_two一些變化,沒有運氣。

返回的列表有重複。例如,我有兩個項目,一個名爲「測試」,另一個名爲「測試5」。 '測試5'有一個標籤'測試'。當我搜索「測試」時,得到的陣列是['Test', 'Test', 'Test 5']

有沒有人看到這裏可能存在什麼問題?謝謝。

回答

1

嘗試以下:

a = ['Test', 'Test', 'Test 5'] 
p a.uniq!{|i| i.split(" ").first} 
# >> ["Test"] 
+0

沒有運氣,我還是在我的搜索結果中得到相同的列表。 –

+0

什麼'返回ary.uniq'返回,給一些樣本,以查看性質。 –

+0

我的控制器中有一些不好的代碼。我從來沒有真的調用該方法的版本。您的解決方案在適當的位置得到適當實施。謝謝。 –