Fab*_* W. 1 ruby-on-rails rails-activerecord sql-like
我是Rails的新手.我已经建立了一个搜索栏,可以浏览我的所有产品.当我只搜索产品名称或描述时,我得到了它的工作.但是,如果名称与搜索词匹配或者与描述匹配,我希望将搜索词与两者和要显示的产品进行比较.
这是我目前的代码:
if params[:q]
search = params[:q]
@products = Product.where("name LIKE ? OR description LIKE ?", "%#{search}%")
else
@products = Product.all
end
Run Code Online (Sandbox Code Playgroud)
现在我收到一个错误:"绑定变量数错误"
我一直试图谷歌寻求解决方案,但我没有幸运.如果有人可以帮助我,我会很感激!非常感谢.
Ole*_*huk 13
如果查询中的变量具有相同的值,则可以使用命名键:
@products = Product.where(
"name LIKE :search OR description LIKE :search", search: "%#{search}%"
)
Run Code Online (Sandbox Code Playgroud)
如果他们不同:
@products = Product.where(
"name LIKE :first_search OR description LIKE :second_search",
first_search: "%#{f_search}%", second_search: "%#{s_search}%"
)
Run Code Online (Sandbox Code Playgroud)
或者只是使用问号:
@products = Product.where(
"name LIKE (?) OR description LIKE (?)", "%#{f_search}%", %#{s_search}%"
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3349 次 |
| 最近记录: |