RoutingError
Rails3.1アプリケーションから救出する方法。私が間違っていなければrescue_from RoutingError
、アプリケーションコントローラで使用することは可能でしたが、現在は不可能です。
4615 次
3 に答える
7
それを処理するための優れた方法はありませんが、いくつかの回避策があります。ここでの議論は、次の提案をもたらします。
ルート
ルートファイルに以下を追加します。
match "*", :to => "home#routing_error"
このアクションでエラーを処理します。
def routing_error
render text: "Not found, sorry", status: :not_found
end
于 2012-03-15T15:21:51.480 に答える
7
@matthew-savageの結果を再現できませんでした。ただし、ルートグロブに関するRailsガイドと別のStackOverflow質問に関するこの質問に従って、私はこの問題を次のように解決しました。
ルート.rb
match "*gibberish", :to => "home#routing_error"
ワイルドカードの後にテキストを含めたことに注意してください。上記のように、コントローラーは正常です。
controller / home_controller.rb
....
def routing_error
render text: "Not found, sorry", status: :not_found
end
于 2013-04-29T23:41:05.683 に答える
0
良い例。
route.rb
Rails 3:
match '*unmatched_route', :to => 'application#raise_not_found!'
Rails 4:
get '*unmatched_route' => 'application#raise_not_found!'
application_controller.rb
def raise_not_found!
raise ActionController::RoutingError.new("No route matches #{params[:unmatched_route]}")
end
于 2016-04-15T15:47:39.687 に答える