Html RubyonRails中的搜索框不显示结果

Html RubyonRails中的搜索框不显示结果,html,ruby-on-rails,search,Html,Ruby On Rails,Search,我正在使用RubyonRails,试图让我的搜索栏显示结果。我曾尝试搜索类似的问题,但大多数问题都已搜索成功,无法正常工作 在我的html中,我有: <%= form_tag users_path, :method => 'get' do %> <p> <%= text_field_tag :search, params[:search] %> <%= submit_tag "Search", :name => nil %

我正在使用RubyonRails,试图让我的搜索栏显示结果。我曾尝试搜索类似的问题,但大多数问题都已搜索成功,无法正常工作

在我的html中,我有:

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

<div class="scrollBox">
  <%= will_paginate%>       
  <ul>
    <% @users.each do |user| %>
      <li>
        <%= link_to user.name, user, {:class=>"signout-style"} %>
      </li>
    <% end %>
  </ul>
 <%= will_paginate %>
</div>
在我的用户模型中,我有:

 def self.search(search)
   if search
     find(:all, :conditions => ['name LIKE ?', "%#{search}%"])
   else
     find(:all)
   end
 end
我用的是railscast第37集
感谢您的帮助

更新
索引
操作,如下所示:

def index
  @users = User.search(params[:search]).paginate(page: params[:page])
end
def self.search(search)
  if search
    where('name LIKE ?', "%#{search}%")
  else
    all
  end
end
当前,您将搜索结果存储在实例变量
@searches
中,行为:

@searches = User.search(params[:search])
但在您的视图中,您正在访问设置为
@users=User.paginate(page:params[:page])
@users
。因此,始终可以看到视图中的所有用户,而不是搜索到的用户

更新

由于您使用的是
rails4.0.2
,我建议您重构
search
方法,如下所示:

def index
  @users = User.search(params[:search]).paginate(page: params[:page])
end
def self.search(search)
  if search
    where('name LIKE ?', "%#{search}%")
  else
    all
  end
end

我尝试了这个方法,但是我得到了一个未定义的方法错误“UsersController中的NoMethodError#index未定义的方法'paginate'”@user3597710您正在使用的rails版本是什么。另外,
will_paginate
gem的版本。我使用的是ruby 2.1.0,will_paginate gem是3.0。4@user3597710您的
Rails
版本是什么?谢谢!如果可以的话,我会全力以赴,不要经常使用StackOverflow请正确缩进您的代码。。你应该尽的最小努力。。。