【发布时间】:2009-08-25 08:10:52
【问题描述】:
我正在使用 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 调用的地方调用它?如果是,它应该住在哪里?
【问题讨论】:
-
我假设这些数字代表当前页面上显示的项目数,总共有多少?无论分页链接是否存在,您都想始终显示这个?在这种情况下,为什么不将其完全保留在 will_paginate 调用之外并在您的视图或自定义辅助方法中实现它?
-
两个假设都是正确的。我热衷于将它们组合在一起,因为它们在逻辑上是相关的;每次我调用 will_paginate 时,我都想显示总数。我还想显示 will_paginate 生成的页面链接之间的总数,例如 Gmail。最简洁的方法似乎是让 will_paginate 在其 to_html 方法中输出总数。
标签: ruby-on-rails pagination overriding will-paginate