我有一个简单的表单,我在其中设置了一个我想要浏览的查询,例如松下维埃拉。
这是我在数据库中搜索术语的方式:
Product.where("name ilike ?", "%#{params[:q]}%").order('price')
查询看起来像%松下维埃拉%,但我需要这样搜索查询:%松下%维埃拉%- 我需要找到所有产品,标题中的这个词在哪里松下 or viera...但是如何进行这个查询呢?
一种解决方案是将查询分解为单独的术语,并构建一组通过以下方式连接的数据库查询:OR
.
terms = params[:q].split
query = terms.map { |term| "name like '%#{term}%'" }.join(" OR ")
Product.where(query).order('price')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)