1

我正在使用 Rails mislav-will_paginate 插件对我的记录进行分页。无论是否有多个页面,我都想产生以下输出:

X - Y of Z
1 - 100 of 1826

如果只有一页记录,WillPaginate::ViewHelpers 中的 will_paginate 返回 nil。如果只有一页,我想以最简洁的方式覆盖它以产生上述输出,或者如果有多页,则上述输出被通常的输出包围。

我已经重写了 WillPaginate::LinkRenderer 的 to_html 方法来产生这个输出,但是如果只有一页记录,我不知道如何产生它。

我是否应该移动代码以在其他地方生成 X - Y of Z 并从我的覆盖 to_html 方法以及如果它返回 nil 时从我进行 will_paginate 调用的地方调用它?如果是这样,它应该住在哪里?

4

1 回答 1

1

好的,这就是我所做的:

  • 创建了一个模块分页器
  • 在我的模型助手中包含 Paginator 模块
  • 在我看来称为 Paginator.paginate
  • 定义 Paginator.paginate 以调用 Paginator.produce_totals 如果只有一页,或调用 will_paginate (正常方法)多页
  • 定义 Paginator.produce_totals 以输出“X - Y of Z”总计,如上
  • 在我的 WillPaginate::LinkRenderer 覆盖类中包含 Paginator 模块
  • 在我的覆盖 to_html 方法的适当位置调用 Paginator.produce_totals

呸!如果它对任何人有用,可以发布代码 - 只要问。

于 2009-08-25T00:10:52.210 回答