私はページ付けを処理するためにカミナリを使用しています。最近、多くの偽のリクエストが、などの無効なページ番号をリクエストしていることがわかりました/post/page/undefined
。Solrを使用しているため、不正なページ番号が渡され、500エラーが発生します。
コントローラに渡される前に、ページ番号を検証できるようにしたい。したがって、ページ番号が無効な場合は、代わりにルーティングエラーが発生します。
カミナリの作者に聞いてみたところ、一時的な解決策を教えてくれました。しかし、これを行うためのよりクリーンな方法があるかどうか疑問に思っています。また、このロジックをすべてのページ可能なリソースに含めたくありません。これは、DRYではないためです。
私のルートの例:
resources :transactions do
get 'page/:page', :action => :index, :on => :collection
end