2011-09-16 9 views
0

私はUsersのインデックスページを持っており、MetaSearchを使用して検索フォームでフィルタリングしたいと考えています。しかし、チェックボックスをクリックすると検索したい値は文字列として保存されます。文字列のチェックボックスでMetaSearchを使用できますか?

<% form_for(current_user.profile) do |f| %> 
<table id="careerCriteria"> 
    <tr> 
    <td class="normal"><%= current_user.profile.hometown %></td> 
    <td><%= check_box_tag :hometown %></td> 
    </tr> 
    <tr> 
    <td class="normal"><%= current_user.profile.current_city %></td> 
    <td><%= check_box_tag :current_city %></td> 
    </tr> 
    <tr> 
    <td class="normal"><%= current_user.profile.past_city %></td> 
    <td><%= check_box_tag :past_city %></td> 
    </tr> 
</table> 
<% end %> 

マイUserモデル::私は検索ボタンを使用したくない

class User < ActiveRecord::Base 
    has_one :profile, :dependent => :destroy 
end 

例えば、ここで私はメタサーチを適用する形です。チェックボックス(またはチェックボックス)をクリックしたときにフィルタを適用したい。私はプログラミングに慣れていないので、どんな助けもありがたいです!

答えて

1

これを達成するには少しのajax &クエリが必要です。

ここでは、チェックボックスを使ってフォームを送信する方法を説明します。あなたがしたいと思う何

http://trevorturk.com/2010/08/24/easy-ajax-forms-with-rails-3-and-jquery/

検索を扱うコントローラでアクションを作成することです。検索アクションの例を次に示します。

def search 
    if params[:term].blank? 
     raise "You must provide search criteria." 
    end 

    params[:term] = "%#{params[:term]}%" 
    conditions = " Description LIKE :term" 

    @careers = Career.all(
     :conditions => [conditions, params], 
     :offset  => params[:offset], 
     :limit  => params[:limit] 
    ) 

    respond_with @careers 
end 

また、このアクションの検索にルートを設定する必要があります。

resources :careers do 
    get "search/:term/:offset/:limit.:format", :action => "search", :constraints => { :offset => /\d+/, :limit => /\d+/ } 
end 

このアクションにフォームを送信すると、jQueryを使用して結果を更新することができます。

Ajax & jQueryを使用して結果をロードしたくない場合は、リモートアクションをフォームタグから取り出し、ページ全体をリフレッシュします。

+0

ありがとうございますが、複数の用語を使用して検索するにはどうすればよいですか?私は数多くの異なる用語でフィルタリングするチャンスを許したいと思っています。たとえば、hometown、current_city、past_cityなどです。 – tvalent2

+0

モデルではスコープを使用する必要があります。あなたに概要を説明するリンクがあります。それはまたあなたが探しているものを正確に行う方法を示す利点があります:http://edgerails.info/articles/what-s-new-in-edge-rails/2010/02/23/the-skinny- on-scope-formerly-named-scope/index.html – Altonymous

+0

これまでにありがとうございました。私はこれを少しずつまとめた別の質問を出しました。あなたは一見して、それを結ぶ方法を理解するのに役立つでしょうか? http://stackoverflow.com/questions/7466123/form-filter-on-index-page-using-cross-model-scope – tvalent2

関連する問題