2013-06-01 45 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

我的控制器中有一些不好的代码。我从来没有真的调用该方法的版本。您的解决方案在适当的位置得到适当实施。谢谢。 –