Ceci est mon premier post ici, donc j'espère que je posterai cette question au bon endroit. Sinon, s'il vous plaît faites le moi savoir pour que je sais pour la prochaine fois que je poste ici :)Ruby on Rails erreur -HTTP manipulation
Je travaille sur un site Web RoR et voudrais gérer les erreurs de serveur (400, 404, 500, etc.) individuellement. En outre, puisque le site Web est dynamique, je voudrais gérer les erreurs dans l'environnement des rails plutôt qu'au niveau du serveur. Un exemple de ce que je voudrais faire pourrait être de présenter l'utilisateur avec du matériel facultatif ou une barre de recherche quand elle heurte une page ou un modèle qui ne chargera pas ou n'existera tout simplement pas.
Je suis nouveau à RoR alors s'il vous plaît nu avec moi au cas où je me demande ce qui est évident.
Alors, je l'ai fait un peu de lecture et je pense que l'utilisation du gestionnaire d'exceptions rescue_from est la voie à suivre dans mon cas. (Serait plus qu'heureux d'entendre si l'un d'entre vous a une opinion différente).
J'ai simple prototype (voir code ci-dessous) et en cours d'exécution, cependant, je reçois une erreur lorsque j'inclus le gestionnaire d'exception suivante au code:
rescue_from ActionController::MissingTemplate, :with => :not_found #404
Maintenant, je ne vois pas que j'ai une faute d'orthographe et j'ai vu cette ligne dans le code posté sur le web. Cependant, quand je l'inclus je reçois l'erreur de routage suivant:
Routing Error No route matches "/errorhandle" with {:method=>:get}
Je travaille sur des rails 2.3.5, peut-être qui a quelque chose à voir avec elle?
J'espère que vous pouvez me aider à faire la lumière sur cette question.
À la votre! /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
Pouvez-vous nous montrer les routes pertinentes de routes.rb, le cas échéant? – Trevoke
Bien sûr Trevoke, merci pour la réponse rapide. Je n'ai rien ajouté à routes.rb donc je suppose que c'est à peu près le standard. fichier: ActionController :: Routing :: Routes.draw faire | carte | map.resources: errorhandlers # ... # beaucoup de lignes commentées # ... map.connect ': controller /: action /: id' map.connect « : contrôleur /: action/: id:. Format » fin –
euh, ne savez pas comment faire le commentaire semble agréable et bien rangé * uark *. espère qu'il lisible ... de toute façon –