我在我的Ruby on Rails应用程序中有这段用于搜索查询的代码。它在 rails 本地服务器上本地工作,但当我在 Heroku 上部署时则不行。下面是该查询的代码行:
@courses = Course.where("name LIKE? ","%#{params[:search][:course].downcase}%").all
一点上下文:课程是我的数据库模型,它有一个名为"name"的字段,在这里我搜索所有名称包含用户指定的某些单词的课程,该查询词通过表单参数传入。
更新:谢谢达尼洛和布拉德!通过在 LIKE 和 ?并使用 ILIKE 而不是 LIKE。
@courses = Course.where("name ILIKE ? ","%#{params[:search][:course].downcase}%")
你必须在LIKE和?之后放一个空格,当你使用 where 时你不需要调用 .all 方法,它是多余的。
@courses = Course.where("name LIKE ? ","%#{params[:search][:course].downcase}%")