0

私のコントローラーの index メソッドは次のようになります。

  def index
    if params["feed_source_id"]
      @feeds = Feed.find_all_by_feed_source_id(params["feed_source_id"])
    else
      @feeds = Feed.all
  end           

Metasearch Gem をアプリに追加したところ、インデックス内の検索が次のように定義されます。

@search = Feed.search(params[:search])

@search が検索を実行し、find_all_by_feed_source_id 条件を含めるように、これらの両方の条件をデイジー チェーン接続するにはどうすればよいですか?

4

2 に答える 2

0

インデックスアクションで両方の検索を実行する以外に、何を目指しているのかわからない場合は、両方の検索結果の和集合または共通部分が必要ですか?

ユニオンが必要な場合は、 @ feeds =@feeds|のようにすることができます。上記のすべてのコードに加えて、@ search.allは、ひどいパフォーマンスをもたらします。

Metasearch Gemについて簡単に説明しましたが、パラメーターの1つとしてfeed_source_idを含めることができるはずです。

于 2012-07-11T19:29:12.370 に答える
0

これらの条件の AND が必要ですよね?

私はこれがうまくいくと思います:

Feed.search({ :feed_source_id_eq => params[:feed_source_id] }.merge(params[:search]))
于 2012-07-12T19:49:20.980 に答える