【发布时间】:2017-09-28 22:20:52
【问题描述】:
我正在尝试在一些使用 Kaminari Gem 实现分页的现有代码之上实现搜索功能。但这也许并不是那么重要。我无法弄清楚(因为我对 rails/ruby 很陌生)是方法链接。以下代码抛出此错误:
SQLite3::SQLException:没有这样的列:名称:SELECT COUNT(*) FROM "courses" WHERE (name LIKE '%1%')
# GET /courses
# GET /courses.json
def index
# @courses = Course.order(:title).page params[:page]
if logged_in?(:site_admin)
# @courses = Course.page(params[:page]).per(5)
@courses = Course.search(params[:term]).page(params[:page]).per(5)
else
# @courses = Course.offered.page(params[:page]).per(5)
@courses = Course.offered.search(params[:term]).page(params[:page]).per(5)
end
end
被注释掉的两行在不添加search(params[:term])的情况下工作
模型中的搜索方法:
def self.search(term)
if term
where('name LIKE ?', "%#{term}%").order('id DESC')
else
order('id DESC')
end
另外,我正在学习教程:https://rubyplus.com/articles/3381-Simple-Search-Form-in-Rails-5
【问题讨论】:
-
您在某处使用
includes吗?如果是,你不应该。检查this
标签: ruby-on-rails