你可以修补 KaminariPaginator
和PageProxy
课程。通过覆盖relevant_pages
, inside_window?
, left_outer?
, 等方法,right_outer?
您可以控制页面链接何时显示在分页视图助手中。
首先,在config/initializers
调用中创建一个新文件kaminari.rb
并粘贴以下代码:
module Kaminari
module Helpers
class Paginator < Tag
def relevant_pages(options)
1..options[:total_pages]
end
class PageProxy
def inside_window?
if @options[:current_page] <= @options[:window]
@page <= (@options[:window] * 2) + 1
elsif (@options[:total_pages] - @options[:current_page].number) < @options[:window]
@page >= (@options[:total_pages] - (@options[:window] * 2))
else
(@options[:current_page] - @page).abs <= @options[:window]
end
end
end
end
end
end
它不漂亮,但它完成了工作。如果您window: 5
在视图中设置,那么这将始终显示总共 10 个链接以及<span>
当前页面的另一个链接。
要了解更多信息,请查看源代码https://github.com/amatsuda/kaminari/blob/master/lib/kaminari/helpers/paginator.rb