Je souhaite tester les 500 pages d'erreur de mon application Rails à l'aide de l'environnement de développement.
J'ai déjà essayé ceci dans config/environments/development.rb
:
config.action_controller.consider_all_requests_local = false
Mais cela ne semble pas avoir d'effet.
Tu peux soit:
local_request?
dans application_controller.rb
par quelque chose comme:def local_request? false end
La seconde empêchera Rails de traiter les demandes de localhost et 127.0.0.1 comme des demandes locales qui, combinées à consider_all_requests_local = false
, devraient vous afficher votre page 500.html.
Le seul moyen que j’ai trouvé de faire cela jusqu’à présent consiste à définir dans development.rb
config.consider_all_requests_local = false
Ensuite, accédez aux URL en utilisant mon adresse IP locale: http://192.168.1.135:3000/blah
Les autres paramètres mentionnés ne semblent pas avoir d'effet.
Aucune des solutions proposées ne fonctionnait dans mon application Rails 3. La solution rapide et sale pour moi était simplement de cliquer directement sur les pages d'erreur pour voir le code HTML rendu. Par exemple,
http://0.0.0.0:3000/404.html
http://0.0.0.0:3000/500.html
Il suffit de faire un http: // localhost: 3000/404 ou/500 pour accéder à ces pages et voir comment elles se présentent.
Vous devriez ajouter les lignes ci-dessous à l'application_controller,
unless ActionController::Base.consider_all_requests_local
rescue_from Exception, :with => :render_500
if ActiveRecord::RecordNotFound
rescue_from Exception, :with => :render_404
end
rescue_from ActionController::RoutingError, :with => :render_404
rescue_from ActionController::UnknownController, :with => :render_404
rescue_from ActionController::UnknownAction, :with => :render_404
end
Ensuite, essayez de courir avec les paramètres ci-dessous.
config.action_controller.consider_all_requests_local = false
dans config/environment/development.rb:
Ça va marcher. N'oubliez pas d'écrire la fonction dans application_controller.rb pour afficher la mise en page de chacun des messages d'erreur.
En plus de régler:
config.consider_all_requests_local = false
J'avais également besoin de définir:
config.action_dispatch.show_exceptions = true
si vous voulez simplement forcer une erreur 500 à voir à quoi ça ressemble, vous pouvez simplement ajouter ceci à une vue:
haml exemple:
= render :partial => "broken", :status => 500
Je pense que le réglage approprié pour tourner est le suivant:
config.action_view.debug_rjs = false
Pourquoi il est toujours étiqueté rjs
n'est pas tout à fait clair.