0

是否有可能有 Kaminari 助手并使用已经分页的数据:

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

2.然后我得到模型实例

3.实例应显示在 UI 上,带有页面按钮,例如 1,2,3 next>

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

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

4

1 回答 1

0

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

Kaminari 默认情况下适用于 Activerecord 结果集/集合或直接适用于轮胎结果对象。例如,如果你有一个Post集成的模型,Tire你可以说,

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 模型实例上定义。

如果您尝试从弹性搜索中获取结果,则根据获取的 ids 从数据库加载记录,然后发回您无法使用的数组,paginate您将不得不对数组使用 kaminari 方法Paginating Arrays with Kaminari

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

Post.search 'term', :load => true
于 2014-01-17T19:20:00.827 回答