kaminari和来自elasticsearch的页面

时间:2013-07-05 13:47:20

标签: ruby-on-rails kaminari

是否可以使用Kaminari帮助程序并使用已经分页的数据:

1。我查询elasticsearch并使所有分页从2页获得10条记录。

2. 然后我获得模型实例

应在带有页面按钮的UI上显示

3。实例,例如1,2,3下一个>

我不知道如何使用Kaminary助手来做它总是抱怨:

未定义的方法`current_page for#< ActiveRecord :: Relation

1 个答案:

答案 0 :(得分:0)

我将假设您正在使用gem Tire与rails上的elasticsearch集成。

默认情况下,Kaminari可以在Activerecord结果集/集合上工作,也可以直接在Tire结果对象上工作。例如,如果您将模型PostTire集成,则可以说,

results = Post.search do
    query do
        #..
    end
    size 10
    from (page_num - 1) * 10
end

results.next_page #returns true if next page is present
results.total #return total number of search results available

在您看来,您可以直接使用

<%= paginate results %>

关键是保持或保持对Activerecord结果集或轮胎结果的引用。未在ActiveRecord模型实例上定义paginate方法。

如果您正在尝试从弹性搜索中获取结果,那么基于获取的ID从数据库加载记录然后发回一个不能使用paginate的数组,您将不得不使用kaminari方法进行数组Paginating Arrays with Kaminari

您可以直接告诉tire加载活动记录对象:

Post.search 'term', :load => true