我有一个简单的表单,可以在其中设置要浏览的查询,例如 panasonic viera 。这是关于我如何在数据库中搜索术语的方法:
Product.where("name ilike ?", "%#{params[:q]}%").order('price')
该查询看起来像是 %panasonic viera% ,但是我需要以这种方式搜索查询: %panasonic%viera% -我需要找到所有产品,标题中的单词 panasonic 或 viera …在 哪里 ,但是如何制作这个查询?
一种解决方案是将您的查询分解为单独的字词,并建立一组由关联的数据库查询OR。
OR
terms = params[:q].split query = terms.map { |term| "name like '%#{term}%'" }.join(" OR ") Product.where(query).order('price')