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? P>
5 Réponses :
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. P>
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
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
Si vous ne pouvez pas utiliser facilement le mode de production localement, définissez le Considérer code> sur false dans votre
config / environnements / développement.rb code> fichier. p>
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