Html RubyonRails中的搜索框不显示结果
我正在使用RubyonRails,试图让我的搜索栏显示结果。我曾尝试搜索类似的问题,但大多数问题都已搜索成功,无法正常工作 在我的html中,我有: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 %
<%= 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请正确缩进您的代码。。你应该尽的最小努力。。。