カミナリPaginator
とPageProxy
クラスにモンキー パッチを適用できます。relevant_pages
、、、、などのメソッドをオーバーライドすることinside_window?
でleft_outer?
、right_outer?
ページ リンクがページ ビュー ヘルパーに表示されるタイミングを制御できます。
config/initializers
開始するには、 calledで新しいファイルを作成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