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

3
我建立了一个基本搜索表单,查询我的应用程序中一个表的一列。我遵循第37集Railscast的指导:http://railscasts.com/episodes/37-simple-search-form 这是我的问题。我想在显示搜索结果的视图中显示用户进行的搜索查询。在我的应用程序中,搜索查询我的个人资料模型的邮政编码列,并返回包含正确邮政编码的个人资料列表。在返回的个人资料列表顶部,我希望它显示“位于[查询的邮政编码]的个人资料”。
我确定我可以做到这点,因为查询的邮政编码会传递到显示结果的URL中。所以如果URL能够获取它,那么肯定有一种方法将其显示在页面上的视图中。但是我不知道怎么做。
请记住,我没有使用任何搜索插件,现在也不想使用。这是我的第一个应用程序,因此我不想在不需要的地方增加复杂性。
根据Ryan在Railscast中的说明,这是我的设置:
个人资料控制器
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个回答

5
只需将它设置为实例变量,然后使用即可。
def index
  @search = params[:search]  
  @profiles = Profile.search(@search)  
end

在您的代码中,您可以引用@search。

另外,友情提示,Rails代码请使用2个空格进行缩进。这是标准的做法,其他人阅读您的代码会更加欣赏。


谢谢。我没有意识到格式混乱了。所以,在我的看法中,我可以放置以下正确的内容吗?<h1> <%=h @search %> 中的企业</h1>。但是我不确定@search部分之后该怎么做。 - MikeH
视图代码看起来很好。但是我不确定你在“@search”部分之后要做什么。 - jdl
谢谢,jdl。我之前的评论是错的。我在实现你的指示时搞砸了,但你的解决方案起作用了。 - MikeH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接