【发布时间】:2012-02-27 11:31:41
【问题描述】:
我们关注了 Ryan Bates 的 Railscast #37,搜索表单在我们的应用程序上显示没有错误,但无法正常工作。它不返回任何搜索结果。
用户控制器:
class UsersController < ApplicationController
def index
@title = "All users"
@users = User.search(params[:search])
end
搜索功能在我们的 user.rb 文件中定义
def self.search(search)
if search
where('name LIKE ?', "%#{search}%")
else
all
end
end
最后是显示搜索框的 index.html.erb 文件
<h1>All users</h1>
<%= form_tag users_path, :method => 'get' do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
</p>
<% end %>
【问题讨论】:
-
您的 index.html.erb 似乎不包含任何代码来实际显示选定的@users?
-
我们认为这就是问题所在。我们将如何根据输入到文本字段中的搜索键来显示
@users? -
使用您当前的代码,@users 将根据搜索表单提交的查询进行过滤。要在 index.html.erb 中显示结果,请参阅我之前在下面的答案中发布的代码。
-
您是否为您的搜索编写了单元测试并验证它是否按照您认为的方式工作?
-
@onemanarmy 搜索表单现在功能齐全,经过一些调整,感谢您的帮助。
标签: ruby-on-rails ruby ruby-on-rails-3 model-view-controller search