当前位置:  开发笔记 > 编程语言 > 正文

在ActiveRecord查询中使用多个LIKE语句

如何解决《在ActiveRecord查询中使用多个LIKE语句》经验,为你挑选了1个好方法。

我是Rails的新手.我已经建立了一个搜索栏,可以浏览我的所有产品.当我只搜索产品名称或描述时,我得到了它的工作.但是,如果名称与搜索词匹配或者与描述匹配,我希望将搜索词与两者和要显示的产品进行比较.

这是我目前的代码:

if params[:q]
  search = params[:q]
  @products = Product.where("name LIKE ? OR description LIKE ?", "%#{search}%")
else 
  @products = Product.all 
  end

现在我收到一个错误:"绑定变量数错误"

我一直试图谷歌寻求解决方案,但我没有幸运.如果有人可以帮助我,我会很感激!非常感谢.



1> Oleg Sobchu..:

如果查询中的变量具有相同的值,则可以使用命名键:

@products = Product.where(
  "name LIKE :search OR description LIKE :search", search: "%#{search}%"
)

如果他们不同:

@products = Product.where(
  "name LIKE :first_search OR description LIKE :second_search",
  first_search: "%#{f_search}%", second_search: "%#{s_search}%"
)

或者只是使用问号:

@products = Product.where(
  "name LIKE (?) OR description LIKE (?)", "%#{f_search}%", %#{s_search}%"
)

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有