假设我有30页与Kaminari分页:
#800 books, 25 per page
=paginate @books, :outer_window => 3, :window => 3
看起来像这样:
1 2 3 4 ... 30 31 32
没有点击5次就无法进入第16页。
(*当前页面,[] =点击)
进入堆叠中间似乎需要做很多工作。
1 2 3 4 ... 15 16 17 ... 30 31 32
答案 0 :(得分:1)
您可以使用内部和外部窗口选项(link),但我认为这不会解决您的问题。
正如@Michal Szyndel的评论所提到的,你需要使用生成器(post_mime_type
注意:你可以传递-e来生成不同的模板语言)。生成文件后,您可以使用一些自定义逻辑编辑“paginator”部分。有关如何操作的介绍请观看Ryan的railscast(从4:53开始)
希望这会让你足够远,因为当你不在分页的开头或结尾时,中间窗口的工作方式取决于你的窗口大小和你想要的东西。 (例如,如果你有一个3的外窗口和2个50页的内窗口,当你在第15页时,这个分页器链接应该是什么样子?)
如果您需要更多帮助,请回复评论,我会更具体地回答。
答案 1 :(得分:1)
扩展kaminari视图元素非常简单。您需要自定义分页助手https://github.com/amatsuda/kaminari#customizing-the-pagination-helper
具体而言,假设您使用的是ERB,则需要修改新的app/views/kaminari/_gap.html.erb
文件。
<%
url,data = url.split('?')
url += '?page=' + (num_pages/2)
%>
<span class="page gap">
<%= link_to_unless page.current?, page, url %>
</span>
这会创建一个指向中间(真正num_pages/2
- 页)的链接。