小さなアプリを作成して、エラーページを傍受したいと思います。Rails - エラーページのコントローラとユーザーのリダイレクト?
Railsのすべての失敗したページリクエストが終了してカスタムビヘイビアをそこに追加できるコントローラを定義することはできますか? routes.rbをアプリの設定の下部にある
小さなアプリを作成して、エラーページを傍受したいと思います。Rails - エラーページのコントローラとユーザーのリダイレクト?
Railsのすべての失敗したページリクエストが終了してカスタムビヘイビアをそこに追加できるコントローラを定義することはできますか? routes.rbをアプリの設定の下部にある
置き、これを/
match '*path', to: redirect('/'), via: :all
私が間違っているんだけど、私は、要求が「hasnので動作しません、コントローラからのエラーを救出と思うなら、私を修正あなたがまだrescue_from
を行うために、どんなコントローラーにもヒットしません。 (ちょうど4.2.xでこれを試しました)
あなたのconfig/routes.rb
には、他のすべての終わりにちょっとした種類のルートを追加する必要があります。これは、基本的に認識されないすべてのトラフィックをerrors#show
アクションにルーティングします。
YourApp::Application.routes.draw do
# ...
# ...
get '*path', to: 'errors#show', via: :all
end
次に、ErrorsController
とURLを解析する方法を作成します。
class ErrorsController < ApplicationController
def show
# parse the URL and redirect or simply render the page
end
end
上記はActiveRecord::RecordNotFound
エラーでは役に立ちません。特定のコントローラのルートパターンに入るためです。そのために、次のようなApplicationController
でrescue_from
を追加することができます。
class ApplicationController < ActionController::Base
rescue_from ActiveRecord::RecordNotFound, with: :foo
def foo
# redirect or do something
end
end
をあなたが 'あなたの投稿をvandalizeないでください –
found'ないような特定のエラーからの救出を利用することができます。 – Glorfindel
@ Glorfindelはそれをしていませんが、私は削除しようとしていて、それはうまく動作しません。質問をより具体的にするためにさらに編集しました。多分誰かが答えてくれるかもしれない。 upvoted答えを持っている、または は受け入れ答えを持っている、または は – unmircea