[英]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
使用uniq
或distinct
以避免重复记录。 在您的情况下,您应该使用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.