2009-08-30 207 views
1

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

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

我确定我可以这样做,因为查询的邮政编码会传递到显示结果的网址中。因此,如果网址可以提取它,则必须有某种方法才能在页面的视图中显示它。但我不怎么样。

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

每瑞安在Railscast说明,这里是我的设置:

PROFILES控制器

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 %> 

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

谢谢!

回答

3

只需将其设置为一个实例变量并使用它。

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

在您看来,您可以参考@搜索。

另外,作为一个友好的提示,请使用Rails代码的2个空格缩进。这是做这件事的标准方式,而其他正在阅读你的代码的人会欣赏它。

+0

谢谢。没有意识到格式化出了重击。那么,在我看来,我可以把下面的,是正确的?

<%= h @search%>

中的业务。但是我不确定在@search部分之后要做什么。 – MikeH 2009-08-30 07:25:45

+0

视图代码看起来不错。虽然我不确定你会得到什么“但是我不确定在@搜索部分之后要做什么”。 – jdl 2009-08-30 07:50:11

+0

谢谢,jdl。我之前的评论是错误的。在执行说明时搞砸了,但解决方案奏效了。 – MikeH 2009-08-30 08:58:48