2

我目前正在使用 Tire 和 ElasticSearch 搜索两个模型(帖子和频道)。

我需要使用 will_paginate 添加分页。问题是,Tire 似乎不支持控制器中的 will_paginate (:page 和 :per_page 不起作用......)。事实证明,要在 Tyre 中使用分页,您必须在模型中调用它。

在我的模型中调用轮胎的问题是,如果我这样做,轮胎不会让我同时搜索我的两个模型(帖子和频道)。

所以......长话短说......如果我在控制器中使用轮胎,我不能有分页,但我可以同时搜索我的两个模型。如果我在我的模型中使用轮胎,我不能同时搜索我的两个模型,但我可以有分页。

这似乎很愚蠢。有没有解决的办法?

作为参考,这是我的控制器中的代码,它允许我同时搜索我的两个模型:

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