在Rails中的基本搜索结果中显示搜索查询

时间:2009-08-30 06:08:54

标签: ruby-on-rails search views

我构建了一个基本搜索表单,用于查询我的应用程序的一个表中的一列。我跟着第37集Railscast:http://railscasts.com/episodes/37-simple-search-form

这是我的问题。我想显示用户在显示搜索结果的视图中进行的搜索查询。在我的应用中,搜索会查询我的个人资料模型的邮政编码列,并返回包含正确邮政编码的个人资料列表。在搜索返回的配置文件列表的顶部,我希望它说“位于[查询的邮政编码]中的配置文件。”

我确信我可以这样做,因为查询过的邮政编码会传递到显示结果的网址中。因此,如果网址可以提取,则必须有一些方法在页面视图中显示它。但我不知道如何。

请记住,我没有使用任何搜索插件,我现在不想使用任何搜索插件。这是我的第一个应用程序,因此我不想在不需要的地方添加复杂性。

Per Ryan在Railscast中的说明,这是我的设置:

PROFILES CONTROLLER

def index  
    @profiles = Profile.search(params[:search])  
end

简介模型

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

PROFILE / INDEX.HTML.ERB

<% form_tag ('/profiles', :method => :get) do %>
    <%= text_field_tag :search, params[:search], :maxlength => 5 %>
    <%= submit_tag "Go", :name => nil %>        
<% end %>

搜索本身运作正常,所以这不是问题。我只需要知道如何在显示结果的视图中显示查询的邮政编码。

谢谢!

1 个答案:

答案 0 :(得分:4)

将其设置为实例变量并使用它。

def index
  @search = params[:search]  
  @profiles = Profile.search(@search)  
end

在您看来,您可以参考@search。

另外,作为一个友好的提示,请使用Rails代码的缩进2个空格。这是执行此操作的标准方法,其他正在阅读您的代码的人会很感激。