gpt4 book ai didi

ruby-on-rails - 具有固定页面链接数的Kaminari分页控件

转载 作者:行者123 更新时间:2023-12-04 03:39:03 25 4
gpt4 key购买 nike

我想让Kaminari通过分页控制以固定的数量显示分页链接,例如每个导航页面上有10个链接。 Kaminari默认情况下在首页显示6个页面链接,并且当您继续浏览直到达到9个项目时,页面链接会继续增长。

我在这里显示图片,当我第一次加载时,它将总共有5个链接。

当我继续浏览时,它将不断增长。

在浏览第5个链接之前,它仅显示总数为9的链接。

即使在Kaminari导航的开始或结束时,我如何始终保持10个链接计数。我已经尝试过Kaminari config.window,但这不是我想要的。

最佳答案

您可以猴子修补Kaminari的PaginatorPageProxy类。通过覆盖relevant_pagesinside_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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com