2013-05-27 201 views
14

私のアプリのヘッダーに検索フォームがあり、この検索フォームを使用してアプリケーション内の複数のモデルを検索したいと考えています。Ransackで複数のモデルを一度に検索

は、例えば/search?q=railsのような要求がWorkProjectUserとその定義された属性のように複数のモデルによる検索をトリガする必要があります。私はすでにアプリの別の領域にあるWorkモデルでRansackを使用していたので、Ransackを使いたいと思っていました。

私はまだRansackをよく理解していないと思うし、ドキュメントでは、を定義してsearch_form_for @qの形式で使用する必要があることを常に指摘しています。あらかじめ特定のモデルを定義する必要がない方法はありますか?そして、search_form_for :qのようなパラメータ名を渡すだけですか?

答えて

32

質問をした後、答えが私の頭にポップアップしました。代わりに、私は今ちょうど次のようにform_tagヘルパーを使用していsearch_form_forヘルパーの

<%= form_tag search_path, method: :get do %> 
    <%= text_field_tag :q, nil %> 
<%= end %> 

や検索アクションでは、私はちょうど行います

q = params[:q] 
@works = Work.search(name_cont: q).result 
@projects = Project.search(name_cont: q).result 
@users = User.search(name_cont: q).result 

これが私の作品。これが他の人にも役立つことを願っています。

+3

ニースのソリューション - 共有ありがとう! – scarver2

+1

大歓迎です。 – Daniel

関連する問題