web-dev-qa-db-fra.com

Comment tester 500.html dans le développement de Rails env?

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.

37
tbk

Tu peux soit:

  1. accéder à l'application en utilisant une adresse autre que localhost ou 127.0.0.1 que Rails considère par défaut comme des requêtes locales
  2. Remplacer 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.

11
Shadwell

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.

71
u2622

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
24
Jeff Poulton

Il suffit de faire un http: // localhost: 3000/404 ou/500 pour accéder à ces pages et voir comment elles se présentent.

19
Stephane Paquet

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.

4
Unni

En plus de régler: config.consider_all_requests_local = false J'avais également besoin de définir: config.action_dispatch.show_exceptions = true

4
Aaron Henderson

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
0
user3681419

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.

0
tadman