2

現在、Tire と ElasticSearch を使用して 2 つのモデル (投稿とチャネル) を検索しています。

will_paginate を使用してページネーションを追加する必要があります。問題は、Tire がコントローラーで will_paginate をサポートしていないように見えることです (:page と :per_page は機能しません...)。Tire でページネーションを使用するには、モデルで呼び出す必要があります。

モデルで Tire を呼び出す際の問題は、これを行うと、Tire で 2 つのモデル (投稿とチャンネル) を同時に検索できないことです。

つまり... 簡単に言うと... コントローラーで Tire を使用すると、ページネーションはできませんが、2 つのモデルを同時に検索できます。モデルで Tire を使用する場合、両方のモデルを同時に検索することはできませんが、ページ付けはできます。

これはばかげているようです。これを回避する方法はありますか?

参考までに、両方のモデルを同時に検索できるコントローラーのコードを次に示します。

def browse
    @user = current_user
    @search_items = Tire.search(['posts_index', 'channels_index'], load: true) do |search|
      if params[:query].present? 
        search.query do |q|
          q.string params[:query], default_operator: "AND"
        end
      end
      search.filter :term, :visibility => ['public']
      search.sort { by :created_at, "desc" }
    end
    @results = @search_items.results
end
4

0 に答える 0