小编典典

Ruby on Rails-根据查询在数据库中搜索

sql

我有一个简单的表单,可以在其中设置要浏览的查询,例如 panasonic viera 。这是关于我如何在数据库中搜索术语的方法:

Product.where("name ilike ?", "%#{params[:q]}%").order('price')

该查询看起来像是 %panasonic viera% ,但是我需要以这种方式搜索查询: %panasonic%viera%
-我需要找到所有产品,标题中的单词 panasonicviera …在 哪里 ,但是如何制作这个查询?


阅读 127

收藏
2021-04-14

共1个答案

小编典典

一种解决方案是将您的查询分解为单独的字词,并建立一组由关联的数据库查询OR

terms = params[:q].split
query = terms.map { |term| "name like '%#{term}%'" }.join(" OR ")
Product.where(query).order('price')
2021-04-14