[RUBY] Lassen Sie uns mit Rails einen Fehlerbildschirm erstellen

Erstellen Sie einen Fehlerbildschirm mit Rails

Fangen Sie den Fehler ab

Der Rails-Controller verfügt über eine Klassenmethode, die als Rettung_von der Methode bezeichnet wird. Sie können angeben, wie Ausnahmen behandelt werden sollen, die innerhalb einer Aktion auftreten. Das Folgende ist 500Error (ergänzt den Fehler auf dem WEB-Server)

application_controller.rb


#Wenn StandardError auftritt, verarbeiten Sie mit Rescue500
rescue_from StandardError, with: :rescue500

Mit Aktion verarbeiten

Diese Rettungsmethode 500 führt tatsächlich die Verarbeitung durch Ausnahmeobjekte werden durch Angabe eines Arguments in die Methode aufgenommen.

Nach dem Rendern wird der Pfad der ERB-Vorlage angegeben. Die Option für den Renderstatus ist der Statuscode der HTTP-Methode.

application_controller.rb



private
  #Geben Sie das Argument an. E. Enthält ein Fehlerobjekt
  def rescue500(e)
    render "errors/server_error", status: 500
  end
end

Um das Obige zusammenzufassen

application_controller.rb


class ApplicationController < ActionController::Base
  rescue_from StandartError, with: :rescue500

  private
  def rescue500(e)
    render "errors/internal_server_error", status: 500
  end
end

Es sieht aus wie das. Fangen Sie einen Fehler ab -> lassen Sie die Aktion damit umgehen-> zeigen Sie den Bildschirm an Das ist der Fluss.

400 Fehler hinzufügen

Da 500 Fehler nicht ausreichen, fügen Sie 400 Fehler hinzu. Fügen Sie Code hinzu, der ActiveRecord :: RecordNotFound-Fehler abfängt

application_controller.rb


class ApplicationController < ActionController::Base
  rescue_from StandartError, with: :rescue500
  rescue_from ActiveRecord::RecordNotFound, with: :rescue404

  private

  def rescue400(e)
    render "errors/not_found", status: 404
  end

  def rescue500(e)
    render "errors/internal_server_error", status: 500
  end
end

Aufgrund eines solchen Fehlers konnte ich den Prozess verzweigen.

Apropos

Die Methodeett_from dient zum Abfangen von Ausnahmen, die in einer Aktion auftreten Fehler, die während des Routing-Prozesses auftreten, können nicht erfasst werden.

Es ist also notwendig, ActionController :: RoutingError zu entwickeln, aber ich denke, dass ich es beim nächsten Mal wieder aufrufen werde.

Das ist alles für heute. Vielen Dank.

** 81 Tage, um ein vollwertiger Ingenieur zu werden **

Recommended Posts

Lassen Sie uns mit Rails einen Fehlerbildschirm erstellen
Lassen Sie uns eine Suchfunktion mit Rails (Ransack) machen
[Rails] Pagenation mit Ajax kompatibel machen
[Schienen] Machen wir einen Unit-Test mit Rspec!
Lassen Sie uns mit Ruby Draw Poker machen ~ Implementierung 1 (Karte) ~
Lassen Sie uns eine Instanz mit .new selbst erstellen. .. ..
Lassen Sie uns mit Ruby ~ Vorbereitung ~ Poker ziehen
Lassen Sie uns mit Ruby Draw Poker machen ~ Implementierung 4 (Deck) ~
[Rails] Verwalten wir Konstanten mit config gem
Erstellen Sie trotzdem eine Anmeldefunktion mit Rails
Lassen Sie uns mit Ruby Draw Poker machen ~ Implementierung 3 (Spieler) ~
Lassen Sie uns mit Ruby Draw Poker machen ~ Implementierung 2 (Rolle) ~
Downgrade einer vorhandenen App, die mit Rails 5.2.4 erstellt wurde, auf 5.1.6
[Rails] Lassen Sie uns die Fehlermeldung ins Japanische übersetzen
[Rails] Fehlerbehebung beim Generieren von Token mit PAYJP
Lassen Sie uns mit Ruby ~ Test-Unit-Vorbereitung ~ Draw Poker machen
Rails6 Ich möchte ein Array von Werten mit einem Kontrollkästchen erstellen
Erstellen Sie eine EC-Site mit Rails5 ⑤ ~ Kundenmodell ~
Erstellen Sie eine EC-Site mit Rails 5 ⑩ ~ Erstellen Sie eine Bestellfunktion ~
Was ist nach der Installation von 'devise' 'bootstrap' von gemfile with Rails zu tun, wenn url ein Fehler ist?
So pushen Sie mit Rails entwickelte Apps an Github
Erstellen Sie eine EC-Site mit Rails5 Address ~ Adresse, Genre-Modell ~
[Mein Memo] Lass uns mit Pry / DB mit Rails auskommen
Machen wir einen LINE Bot mit Ruby + Sinatra - Teil 2
Fehler beim Bereitstellen von Docker auf Schienen mit Notizen
Erstellen Sie eine EC-Site mit Rails5 ④ ~ Kopf- und Fußzeile ~
[Java-Grundlagen] Lassen Sie uns ein Dreieck mit einer for-Anweisung erstellen
Erstellen Sie eine EC-Site mit Rails5 seed ~ Startdateneingabe ~
Machen wir einen LINE Bot mit Ruby + Sinatra - Teil 1
Catch Rails Routing-Fehler
[Rails 6] Laufzeitfehler mit $ Rails s
Lassen Sie uns Rails-like machen (View)
Mac Rails Installationsfehler
Gerät mit Schienen handhaben
[Rails] Lernen mit Rails Tutorial
[Schienen] Test mit RSpec
[Schienen] Was tun, wenn mit der Fehlermethode keine Fehlermeldung angezeigt wird?
Lass uns mit Java kratzen! !!
Unterstützt Mehrsprachigkeit mit Rails!
[Rails] Erstellen Sie eine Anwendung
Erstellen eines Ev3-Funkcontrollers mit JavaFx und leJOS [Teil 2]
Ich möchte eine mit Rails 6 erstellte App an GitHub senden
Zusammenfassung der ersten Arbeiten beim Erstellen einer App mit Rails
Erstellen wir eine einfache API mit EC2 + RDS + Spring Boot ①
[swift5] Versuchen Sie, einen API-Client auf verschiedene Arten zu erstellen
Zeigen Sie während des Downloadvorgangs einen Fehlerbildschirm an, um zu antworten