我想让Kaminari通过分页控制以固定的数量显示分页链接,例如每个导航页面上有10个链接。 Kaminari默认情况下在首页显示6个页面链接,并且当您继续浏览直到达到9个项目时,页面链接会继续增长。
我在这里显示图片,当我第一次加载时,它将总共有5个链接。
当我继续浏览时,它将不断增长。
在浏览第5个链接之前,它仅显示总数为9的链接。
即使在Kaminari导航的开始或结束时,我如何始终保持10个链接计数。我已经尝试过Kaminari config.window,但这不是我想要的。
最佳答案
您可以猴子修补Kaminari的Paginator
和PageProxy
类。通过覆盖relevant_pages
,inside_window?
,left_outer?
和right_outer?
之类的方法,您可以控制何时在分页 View 帮助器中显示页面链接。
首先,请使用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
它虽然不漂亮,但可以完成工作。如果在 View 中设置
window: 5
,则该页面将始终显示总共10个链接以及当前页面的另一个<span>
。要了解更多信息,请查看源代码https://github.com/amatsuda/kaminari/blob/master/lib/kaminari/helpers/paginator.rb
关于ruby-on-rails - 具有固定页面链接数的Kaminari分页控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13395556/