我正在尝试实施搜索字段,但我收到错误
在BenefitsController #index 中的ActiveRecord :: RecordNotFound
基本上
我的控制器:
def index
@benefits = Benefit.search(params[:search]).all.order("created_at DESC")
end
我的模特:
def self.search(search)
if search
find(:all, :conditions => ['name LIKE ?', "%#{search}%"])
else
find(:all)
end
end
我的观点:
- form_tag benefits_path, :medthod => 'get' do
%p= text_field_tag :search, params[:search]
%p= submit_tag "Search", :name => nil
请告诉我错误的位置
应用程序跟踪:
app / models / benefit.rb:14:in
search' app/controllers/benefits_controller.rb:6:in
index'
答案 0 :(得分:1)
最好使用where
方法,如果没有匹配则返回空数组。
if search
where("lower(name) LIKE ?", "%#{search.downcase}%")
else
all
end