我目前在这里有这个代码,需要两个参数搜索和search_lang。现在,有时如果笔记的名称中包含搜索词,并且标签中包含相同的搜索词,则它将返回相同的记录两次。有什么方法可以阻止这种情况发生吗?
if search_lang == "all-notes"
notes.where("lower(name) LIKE ?", "%#{search.downcase}%") + notes.tagged_with(search)
elsif search.blank?
notes.where("lower(coding_lang) LIKE ?", "%#{search_lang.downcase}%") + notes.tagged_with(search)
else
notes.where("lower(coding_lang) LIKE ?", "%#{search_lang.downcase}%").where("lower(name) LIKE ?", "%#{search.downcase}%") + notes.tagged_with(search)
end
答案 0 :(得分:3)
您可以使用uniq
(notes.where(conditions) + notes.tagged_with(search)).uniq