2009-08-30 168 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