阻止rails包含数组中的记录

时间:2015-02-16 05:33:13

标签: ruby-on-rails

我目前在这里有这个代码,需要两个参数搜索和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

1 个答案:

答案 0 :(得分:3)

您可以使用uniq

(notes.where(conditions) + notes.tagged_with(search)).uniq