繁体   English   中英

用Kaminari分页跳到midde

[英]Jump to the midde with Kaminari pagination

假设我有30页与Kaminari分页:

#800 books, 25 per page
=paginate @books, :outer_window => 3, :window => 3

它看起来像这样:

1 2 3 4 ... 30 31 32

没有点击5次就无法进入第16页。

  1. 1 * 2 3 [4] ... 30 31 32
  2. 1 2 3 4 * 5 6 [7] ... 30 31 32
  3. 1 2 3 4 5 6 7 * 8 9 [10] ... 30 31 32
  4. 1 2 3 ... 7 8 9 10 * 11 12 [13] ... 30 31 32
  5. 1 2 3 ... 10 11 12 13 * 14 15 [16] ... 30 31 32

(*当前页面,[] =点击)

到达堆栈中间似乎需要做很多工作。

  1. 如何在点击间隙(...)时将Kaminari扩展到第16页?
  2. 是否有可能扩展Kaminari从一开始就显示中间?

1 2 3 4 ... 15 16 17 ... 30 31 32

您可以使用内部和外部窗口选项( 链接 ),但我认为这不会解决您的问题。

正如@Michal Szyndel的评论所提到的,你需要使用生成器( rails g kaminari:views THEME note:你可以传递-e来生成不同的模板语言)。 生成文件后,您可以使用一些自定义逻辑编辑“paginator”部分。 关于如何做到这一点的介绍观看Ryan的railscast (从4:53开始)

希望这能让你足够远,因为当你不在分页的开头或结尾时,中间窗口的工作方式取决于你的窗口大小和你想要的东西。 (例如,如果你有一个3的外窗口和2个50页的内窗口,当你在第15页时,这个分页器链接应该是什么样子?)

如果您需要更多帮助,请回复评论,我会更具体地回答。

扩展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 -th)页面的链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM