Rails简单的搜索框抛出错误

时间:2016-08-20 17:44:06

标签: ruby-on-rails

我正在尝试使用我正在尝试实施的搜索框。我正在构建经典的twitter克隆,我希望能够搜索用户。

这就是我的表格:

<%= form_tag(users_path, method: 'get') do %>
      <%= text_field_tag(:search, params[:search]) %>
      <%= submit_tag("Search", name: nil) %>
<% end %>

这是我的用户索引:

def index
        @users = User.search(params[:search])
end

这是我在User中的搜索方法:

def self.search(search)
        if search
            find(:all, :conditions => ['name LIKE ?', "%#{search}%"])
        else
            find(:all)
        end
end

我收到了这个错误:

ActiveRecord::RecordNotFound in UsersController#index
Couldn't find all Users with 'id': (all, {:conditions=>["name LIKE ?", "%@dark%"]}) (found 0 results, but was looking for 2)

我希望它能够搜索名称,但它正在搜索ID,对吧?我是rails的新手,所以我通过制作这个应用程序来学习。

1 个答案:

答案 0 :(得分:2)

您必须在搜索方法中使用where而不是find。 查看thisthis related question