在构建搜索字段时“记录未找到错误” - Rails

时间:2015-08-17 14:45:48

标签: ruby-on-rails search

我正在尝试实施搜索字段,但我收到错误

  在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'

1 个答案:

答案 0 :(得分:1)

最好使用where方法,如果没有匹配则返回空数组。

if search
  where("lower(name) LIKE ?", "%#{search.downcase}%")
else
  all
end