繁体   English   中英

Rails查询唯一项

[英]Rails Query Unique Items

我有一个搜索栏,它工作正常,但是每次显示正确的结果时都会产生重复。

if params[:nav_search] 
  @art = Art.where(["style_number LIKE ? OR name LIKE ?", "%#{params[:nav_search]}%", "%#{params[:nav_search]}%"]).page(params[:page]).per_page(18)
end

有什么提示我要去哪里吗?

尝试以下

@art = Art.where(["style_number LIKE ? OR name LIKE ?", "%#{params[:nav_search]}%", "%#{params[:nav_search]}%"]).distinct.page(params[:page]).per_page(18)

为了从数据库中检索对象,Active Record提供了几种查找器方法。 每个查找器方法都允许您将参数传递给它,以在不编写原始SQL的情况下对数据库执行某些查询。

您可以看一下《 Rails Guide以了解它

包括.uniq

尝试这个,

if params[:nav_search] 
  @art = Art.where(["style_number LIKE ? OR name LIKE ?", "%#{params[:nav_search]}%", "%#{params[:nav_search]}%"]).uniq.page(params[:page]).per_page(18)
end

使用uniqdistinct以避免重复记录。 在您的情况下,您应该使用distinct

if params[:nav_search] 
  @art = Art.where(["style_number LIKE ? OR name LIKE ?", "%#{params[:nav_search]}%", "%#{params[:nav_search]}%"]).distinct.page(params[:page]).per_page(18)
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM