我是Rails的新手.我已经建立了一个搜索栏,可以浏览我的所有产品.当我只搜索产品名称或描述时,我得到了它的工作.但是,如果名称与搜索词匹配或者与描述匹配,我希望将搜索词与两者和要显示的产品进行比较.
这是我目前的代码:
if params[:q] search = params[:q] @products = Product.where("name LIKE ? OR description LIKE ?", "%#{search}%") else @products = Product.all end
现在我收到一个错误:"绑定变量数错误"
我一直试图谷歌寻求解决方案,但我没有幸运.如果有人可以帮助我,我会很感激!非常感谢.
如果查询中的变量具有相同的值,则可以使用命名键:
@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}%" )