2009-08-30 30 views
1

私のアプリケーションの1つのテーブルの1つの列を照会する基本的な検索フォームを作成しました。私はエピソード37を続けたRailscast:http://railscasts.com/episodes/37-simple-search-formRailsの基本検索の結果に検索クエリを表示

私の問題です。ユーザーが検索結果を表示するビューに表示する検索クエリを表示します。私のアプリでは、検索は私のプロファイルモデルの郵便番号の列を照会し、正しい郵便番号を含むプロファイルのリストを返します。検索から返されたプロファイルのリストの一番上に、「質問された[郵便番号]にあるプロファイル」としたいと思います。

質問した郵便番号が結果を表示するURLに渡されるため、これを行うことができます。したがって、URLがそれを拾うことができるならば、ページ上のビューにそれを表示する何らかの方法がなければなりません。しかし、私はどうやっていません。

検索プラグインを使用していないため、現在は使用したくないことにご注意ください。これは私の最初のアプリですので、必要がないところで複雑さを加えたくありません。 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 %> 

検索自体は完全に機能しているため、問題はありません。私は結果を表示するビューに照会された郵便番号を表示する方法を知る必要があります。

ありがとうございます!

答えて

3

インスタンス変数に設定して使用してください。

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

@searchを参照できます。

また、フレンドリーなヒントとして、Railsコードには2桁のインデントを使用してください。これは標準的な方法であり、コードを読んでいる人はそれを感謝します。

+0

ありがとうございました。フォーマットがうまくいかなくなったことに気付かなかった。だから、私の見解では、私は以下を置くことができます、正しい?

<%= h @search%>

の企業しかし、私は@search部分の後に何をすべきか分かりません。 – MikeH

+0

ビューコードが正常に見えます。私はあなたが "@searchの後に何をすべきか分かりません"と思っています。 – jdl

+0

ありがとう、jdl。私の以前のコメントは間違っていた。あなたの指示を実装すると私はうんざりしましたが、あなたのソリューションはうまくいきました。 – MikeH

関連する問題