如何自定义will_paginate?

时间:2011-08-06 09:20:17

标签: ruby-on-rails will-paginate

我正在使用带有ruby 1.8.7和rails 2.3.8的will_pagination并获得分页链接,

      << previous  1 2 3 4 5 6 7 8 9 ... 66 67 next >> and 
      << previous 1 2 ... 30 31 32 33 34 35 36 37 38 39 ... 66 67 next >>

帮助我如何呈现如下所示的分页链接

      << previous 1 2 3 4 5 ... 66 67 next >> (or)
      << previous 1 2 ... 30 31 ... 66 67 next >>

想要自定义页面链接,在这里我喜欢在第5页而不是第9页之后带来间隙css。这可能吗?

1 个答案:

答案 0 :(得分:2)

您可以编写自己的LinkRenderer并将其作为renderer选项传递:

will_paginate(@items, :renderer => My:LinkRenderer)

查看LinkRendererBaseLinkRenderer,了解默认渲染器的工作原理。

更新:实际上,您无需创建自己的渲染器即可实现所需。自定义WillPaginate如:

WillPaginate::ViewHelpers.pagination_options[:inner_window] = 2
WillPaginate::ViewHelpers.pagination_options[:outer_window] = 1

它会像你想要的那样呈现分页栏。您可以将初始化添加到config/initializers文件夹中的初始化文件。