Как сделать перенаправление при переполнении массива подкачки
У меня есть представление индекса с 45 продуктами и 3 страницами.
Я использую pagy_array как:
@pagy, @products = pagy_array(products, items: 20)
Если я удалю 6 товаров, я получу 39 товаров на 2 страницах. Но Google проиндексировал третью страницу, и когда клиент заходит на эту страницу, он получает ошибку
expected :page in 1..2; got 3
Как я могу сравнить params[:page] с @pagy.page и сделать редирект 301, если он больше?
2 ответа
Пожалуйста, проверьте эту документацию. Вы можете настроить это в инициализаторе pagy.rb
https://ddnexus.github.io/pagy/extras/overflow
in the pagy.rb initializer:
require 'pagy/extras/overflow'
# default :empty_page (other options :last_page and :exception )
Pagy::VARS[:overflow] = :last_page
# OR
require 'pagy/countless'
require 'pagy/extras/overflow'
# default :empty_page (other option :exception )
Pagy::VARS[:overflow] = :exception
Другие варианты обработки переполнения -
:last_page, :empty_page or :exception
исправить на текущую дату 31.08.2023
в инициализаторе pagy.rb
#чтобы вернуть последнюю доступную страницу
require "pagy/extras/overflow"
Pagy::DEFAULT[:overflow] = :last_page
#чтобы вернуть пустую страницу
require "pagy/extras/overflow"
Pagy::DEFAULT[:overflow] = :empty_page