2

我正在努力使用 mongoid 进行分页。我可以在我的集合对象上调用分页,例如

@results = @collections.paginate :page => 1, :per_page => 10

但它需要如何被提及?
在我看来,我已将集合部分呈现为

<%= render :collection => @collections, :partial => collect.xml %>
<%= will_paginate @results %>

在上面的行中,我得到了数组的错误未定义方法 total_pages。

但是,如果我在视图中删除 will_paginate 调用并且所有集合都显示在视图中而没有分页,则没有错误。请帮忙。

我认为我在视图中调用分页助手时出错了。我已经搜索了很长时间,但没有找到包含针对 mongoid 的分页调用的示例。

如果这是一个愚蠢的问题,请原谅我。我是新手。

4

1 回答 1

4

这个方法调用

@results = @collections.paginate :page => 1, :per_page => 10

将填充@results10 个项目的数组@collections。您根本不需要使用 will_paginate,只需按@results原样使用对象即可。

如果您在给出超过 10 个结果的视图时遇到问题,请调试控制器和视图以确保中间没有任何东西弄乱您的@results数组。

编辑:

啊哈,所以问题在于在视图上显示分页链接。是的,为此您需要视图知道当前页面和可用页面总数等信息,以便您可以计算需要多少链接。

作为回报,您的链接需要让控制器知道正在请求哪个页面,您可以使用 GET 请求参数来实现。助手可能是保持视图清洁的最佳方式。

于 2010-10-28T17:22:08.907 回答