Dies ist mein erster Beitrag hier, also hoffe ich, dass ich diese Frage an den richtigen Ort stelle. Ansonsten lass es mich bitte wissen, damit ich das nächste Mal hier posten kann :)Ruby on Rails -HTTP Fehlerbehandlung
Ich arbeite an einer RoR-Website und würde gerne Serverfehler (400, 404, 500, etc.) einzeln behandeln. Da die Website dynamisch ist, möchte ich auch die Fehler in der Rails-Umgebung und nicht auf der Serverebene behandeln. Ein Beispiel für das, was ich tun möchte, könnte sein, dem Benutzer optionales Material oder eine Suchleiste zu präsentieren, wenn sie auf eine Seite oder eine Vorlage stößt, die nicht geladen wird oder einfach nicht existiert.
Ich bin neu bei RoR so bitte bitte mit mir, falls ich das offensichtliche frage.
Also, ich habe ein wenig gelesen und ich denke, dass die Verwendung der Exception Handler rescue_from ist der Weg in meinem Fall zu gehen. (Wäre mehr als glücklich zu hören, wenn einer von euch eine andere Meinung hat).
ich einen einfachen funktionierenden Prototyp (siehe Code unten) und läuft, aber ich erhalte eine Fehlermeldung, wenn ich folgende Exception-Handler, um den Code enthalten:
rescue_from ActionController::MissingTemplate, :with => :not_found #404
Jetzt kann ich nicht sehen dass ich einen Rechtschreibfehler habe und diese Zeile im Code im Internet gesehen habe. Allerdings, wenn ich es schließen erhalte ich die folgenden Routing-Fehler:
Routing Error No route matches "/errorhandle" with {:method=>:get}
ich auf Schienen arbeitete 2.3.5, vielleicht, dass hat etwas damit zu tun?
Ich hoffe, dass Sie mir helfen können, etwas Licht auf dieses Problem zu werfen.
Prost! /Maja
class ApplicationController < ActionController::Base
helper :all # include all helpers, all the time
protect_from_forgery #See ActionController::RequestForgeryProtection for details
#ActiveRecord exceptions
rescue_from ActiveRecord::RecordNotFound, :with => :not_found #400
#ActiveResource exceptions
rescue_from ActiveResource::ResourceNotFound, :with => :not_found #404
#ActionView exceptions
rescue_from ActionView::TemplateError, :with => :not_found #500
#ActionController exceptions
rescue_from ActionController::RoutingError, :with => :not_found #404
rescue_from ActionController::UnknownController, :with => :not_found #404
rescue_from ActionController::MethodNotAllowed, :with => :not_found #405
rescue_from ActionController::InvalidAuthenticityToken, :with => :not_found #405
rescue_from ActionController::UnknownAction, :with => :not_found #501
# This particular exception causes all the rest to fail.... why?
# rescue_from ActionController::MissingTemplate, :with => :not_found #404
protected
def not_found
render :text => "Error", :status => 404
end
# Scrub sensitive parameters from your log
# filter_parameter_logging :password
end
Können Sie uns die relevanten Routen von routes.rb anzeigen, falls vorhanden? – Trevoke
Sure Trevoke, danke für die schnelle Antwort. Ich habe nichts zu routes.rb hinzugefügt, also denke ich, das ist ziemlich viel Standard. Datei: ActionController :: Routing :: Routen.draw do | map | map.resources: Errorhandlers # ... # viele Zeilen auf Kommentar # ... map.connect ': controller /: action /: id' map.connect ‚: controller /: action/: id.: format ' ende –
uh, nicht sicher, wie man den Kommentar schön und ordentlich aussehen lässt * uark *. Hoffe, es ist sowieso lesbar ... –