1

ルーティング エラーが発生したときに 404 を表示するようにコントローラー、ルーティング、またはビューを作成するにはどうすればよいですか?

たとえば、ユーザーが URL アドレスにアクセスした場合

http://0.0.0.0:3000/posts/likes

likesパスはルーティングのメソッドではありません。404 ページにリダイレクトするにはどうすればよいですか?

4

3 に答える 3

3

簡単なグーグル検索では、ほとんどリソースが得られませんでした。次の2つをお勧めします。

私はこれらのいずれも個人的には使用しませんでしたが、gem は確実に役立つと思います。はい、2 つ目のリンクは実際のシナリオからのものです。

于 2012-10-01T06:23:54.533 に答える
2

1.application_controller.rb

# ..
rescue_from ActiveRecord::RecordNotFound, :with => :record_not_found

private
def record_not_found(e)
  render ‘errors/not_found’, :status => 404
end

2.エラーフォルダーとnot_found.html.erbという名前のファイルを作成します。

3.ソースをapplication_controller.rbに追加

def record_not_found(e)
  render ‘errors/not_found’, :status => 404, :layout => ‘error’
end
于 2012-10-01T06:24:13.967 に答える
2

Rails では、独自の「例外アプリ」を定義してエラーを処理できます。これは、エラーを処理する 1 つの方法です。でapplication.rb

config.exceptions_app = self.routes

そして、あなたのルートで:

match '/404', to: 'errors#not_found'
match '/500', to: 'errors#error'

次にErrorsController、処理したいさまざまなエラーの with メソッドと、各エラーのテンプレート ファイル、およびerrors.html.erb使用する場合はレイアウト ファイルが必要です。

ActionController::RoutingError本番環境でActiveRecord::RecordNotFound自動的に 404 を発生させます。

于 2012-10-01T06:32:14.157 に答える