Как сделать перенаправление при переполнении массива подкачки

У меня есть представление индекса с 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
Другие вопросы по тегам