私はRailsには比較的新しいので、ルーティングについてはまだ分かりません。ユーザーが特定のエラーコード(404)を取得したときに、特定のビュー(404.html.erb
など)を表示するにはどうすればよいですか?たとえば、ユーザーが存在しないページを取得した場合(404)、そのイベントをリッスンして特定のページを表示するにはどうすればよいですか?
Railsアプリにはpublic
フォルダがあり、404、500、422のエラーコード.htmlページがあらかじめ生成されていますが、私にとってはうまくいかないようです。存在しないページに行くと、GETエラーが発生します。どうすればこれを変更できますか?
ありがとうございます!Rails:特定のステータスコードでページを表示するにはどうすればよいですか?
0
A
答えて
1
通常のコントローラビューテンプレートと同じように、カスタムルートを設定してコントローラから動的ページをレンダリングできます。
not_found.html.erbのconfig/routes.rbを
MyApp::Application.routes.draw do
# custom error routes
match '/404' => 'errors#not_found', :via => :all
match '/500' => 'errors#internal_error', :via => :all
end
アプリ/コントローラ/ errors_controller.rb
class ErrorsController < ApplicationController
def not_found
render(:status => 404)
end
end
アプリ/ビュー/エラー/
<div class="container"> <div class="align-center"> <h3>Page not found</h3> <%= link_to "Go to homepage", root_path %> </div> </div>
0
ローカルホストからパブリックページにアクセスできます。 Railsは、そのエラーが発生すると自動的にそれらのページを使用します。あなたは以下のように行うことができます
localhost:3000/404 # => renders the 404.html
localhost:3000/500 # => renders the 500.html
0
:これらの変更後の
# in config/application.rb
config.exceptions_app = self.routes
# For testing on development environment, need to change consider_all_requests_local
# in config/development.rb
config.consider_all_requests_local = false
再起動サーバー。
# in routes.rb
get '/404', to: 'errors#not-found'
get '/422', to: 'errors#unprocessable-entity'
get '/500', to: 'errors#internal-error'
関連する問題
- 1. Blogger:モバイルの特定のページでウィジェットを非表示にするにはどうすればよいですか?
- 2. Wordpressで特定のカテゴリのランダムなページを表示するにはどうすればよいですか?
- 3. 検索エンジンから特定のページを非表示にするにはどうすればよいですか?
- 4. FlowDocumentReaderで特定のページを表示するにはどうすればよいですか?
- 5. 特定のページの共通リンクを非表示にするにはどうすればよいですか?
- 6. Concrete5:特定のページタイプにページ属性を表示するにはどうすればよいですか?
- 7. 特定のページに対してpage_actionを表示させるにはどうすればよいですか?
- 8. 特定の数のdivを表示/非表示にするにはどうすればよいですか?
- 9. 特定のRuby on Railsページからアプリケーションレイアウトを削除するにはどうすればよいですか?
- 10. Vapor - 特定のステータスコードでJSON応答を返すにはどうすればよいですか?
- 11. XAMLのコンテナ(dllなど)に特定のアイコンを表示するにはどうすればよいですか?
- 12. 特定の状況での印刷を非表示にするにはどうすればよいですか?
- 13. gst-launchで特定のポジションでビデオを表示するにはどうすればよいですか?
- 14. Railsで特定のIPによるアクセスを禁止するにはどうすればよいですか?
- 15. Visual Studioコードで特定のファイルを非表示にするにはどうすればよいですか?
- 16. 特定のズームレベルでMKMapViewにUILabelを表示するにはどうすればよいですか?
- 17. 特定のインデックスでDatagrid Rowを非表示にするにはどうすればよいですか?
- 18. カスタムGoogleマップで特定のローカリティラベルを非表示にするにはどうすればよいですか?
- 19. web.configで特定のIISフォルダにディレクトリリストを表示するにはどうすればよいですか?
- 20. 特定のユーザーからの投稿を非表示にするにはどうすればよいですか?
- 21. リーフレットで特定のズームレベルを超えてラベルを表示するにはどうすればよいですか?
- 22. eclipseで特定のクラスのソースコードを表示するにはどうすればよいですか?
- 23. 特定の名前のフォルダをバッチで一覧表示するにはどうすればよいですか?
- 24. xpageの特定のツリーノードをプログラムで強調表示するにはどうすればよいですか?
- 25. Android CalendarViewで特定の月のみを表示するにはどうすればよいですか?
- 26. GUIの内容を特定の方法で表示するにはどうすればよいですか? (Java)
- 27. 特定のベースレイヤーでのみオーバーレイを表示するにはどうすればよいですか?
- 28. プロメテウスのヒストグラムから特定のメトリックグループの数を表示するにはどうすればよいですか?
- 29. フィルタで特定の値を表示するにはどうすればよいですか?
- 30. 通知アクションで特定のviewcontrolerを表示するにはどうすればよいですか?