Techioz Blog

Routes.rb で行なしで懸念を使用したい

概要

私はこの懸念を利用し、アプリケーションコントローラーに彼を含めます

class ApplicationController
  include ErrorHandling
end
module ErrorHandling
  extend ActiveSupport::Concern

  included do
    rescue_from ActionController::RoutingError, with: :not_found
  end

  def not_found
    render plain: 'Not Found', status: :not_found
  end
end

しかし、私はroutes.rbに行を追加する必要があります

get '*path', to: 'application#not_found', via: :all 

そして、この行を書いたとき、私のクエリはすべて良好で、404.html静的ページがレンダリングされます

この行を削除すると、私のクエリは次のようになります

Starten GEY "/123" for 127.0.0.1 at ....

ActionController::RoutingError (No route matches [GET] "/123"):

この行を削除したいのですが、どうすればよいでしょうか?方法がわかりません これは、routes.rb にこの行がなくても Rails 6 で動作します。

書くことはすべて私がやります

解決策

本番環境と同様に開発環境でも例外を処理したい場合は、consider-all-requests-local を false に設定する必要があります。

ドキュメントから: