9
votes

Comment puis-je afficher une page d'erreur 404 au lieu d'une erreur de routage?

Dans mon rubis sur les rails Application Je souhaite montrer 404 page d'erreur au lieu d'une erreur de routage lorsque l'itinéraire donné ne correspond ou n'existe pas dans mon application. Quelqu'un peut-il m'aider à le rendre possible?


0 commentaires

5 Réponses :


0
votes

Vous pouvez attraper une exception qui est lancée lorsqu'un itinéraire n'est pas trouvé, puis rendez-vous une page personnalisée. Faites-moi savoir si vous avez besoin d'aide avec le code. Il pourrait y avoir beaucoup d'autres moyens de le faire, mais cela fonctionne certainement.


0 commentaires

13
votes

Ceci est déjà le comportement par défaut en production. Dans les erreurs de routage de l'environnement de développement, les erreurs de routage sont affichées pour laisser le développeur les remarquer et les corriger.

Si vous souhaitez l'essayer, démarrez le serveur en mode de production et vérifiez-le. P>

$ script/rails s -e production


0 commentaires

10
votes

in ApplicationController CODE>

 rescue_from ActiveRecord::RecordNotFound, :with => :rescue404
 rescue_from ActionController::RoutingError, :with => :rescue404

  def rescue404
    #your custom method for errors, you can render anything you want there
  end


0 commentaires

11
votes

Si vous ne pouvez pas utiliser facilement le mode de production localement, définissez le Considérer sur false dans votre config / environnements / développement.rb fichier.


0 commentaires

1
votes

Ce retour 404 Page

dans ApplicationController P>

class ApplicationController < ActionController::Base

      rescue_from ActiveRecord::RecordNotFound,    with: :route_not_found
      rescue_from ActionController::RoutingError,  with: :route_not_found
      rescue_from ActionController::UnknownFormat, with: :route_not_found


    def route_not_found
        render file: Rails.public_path.join('404.html'), status: :not_found, layout: false
      end


0 commentaires