ページネーションの最後のページが存在しなくて404エラーが出る
概要
pagyというGemを使ってページネーションを導入したまでは良かったのですが、
アプリの操作でレコードが削除され、ページネーションの存在しないページにアクセスすることで404になってしまいます。
エラー内容
404存在しないページ
解決法
難しく考える必要はなく、pagyにそのような想定の機能がありました!
It raises Pagy::OverflowError exceptions that you can rescue from (see how...) or use the overflow extra for a few ready to use common behaviors
raises Pagy::OverflowError exceptions that you can rescue from (see how...) or use the overflow extra for a few ready to use common behaviors
It does not impose any difficult-to-override logic or output
DeepL翻訳
Pagy::OverflowError例外を発生させ、そこから救出することができます(方法を参照してください...)。
はPagy::OverflowError例外を発生させ、そこから救出することができます(方法を参照してください)。
オーバーライドが困難なロジックや出力を課すことはありません。
とのことで、ドキュメントのリンクもありました。
色々と設定できるようですが、私の場合は「ページネーションが存在する最後のページにリダイレクト」したかったので、
config/initializers/pagy.rb
require 'pagy/extras/overflow'
Pagy::DEFAULT[:overflow] = :last_page
の設定で無事動作しました。
色々と検索して時間がかかってしまったのですが、
公式の一次情報をチェックするのは大事ですね。
Discussion