轮胎没有在控制器中使用will_paginate

时间:2013-09-28 23:05:57

标签: ruby-on-rails ruby-on-rails-3 elasticsearch tire

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

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

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

所以...长话短说...如果我在控制器中使用Tire,我不能有分页但我可以同时搜索我的两个模型。如果我在我的模型中使用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

0 个答案:

没有答案