2009-06-05 7 views
1

Je travaille sur les rails 2.3 sur mac osx leopard. chaque fois que je tape une URL qui n'existe pas dans une application rails je reçois l'erreur suivanterails: affichage d'un message convivial pour une erreur de routage dans les rails

Routing Error 

No route matches "/whatever_i_typed" with {:method=>:get} 

c'est de trouver pour le développement, mais je me demandais comment je peux assurer que les utilisateurs voient un plus convivial « oups! page introuvable. Je pensais à faire un début ... bloc de sauvetage mais je ne savais pas où le mettre, je ne savais pas le code d'erreur (i.e ActiveRecord :: RecordNotFound)

merci! Yuval

Répondre

2

Cette erreur n'apparaîtra jamais en production. Au lieu de cela, les utilisateurs verront la page public/404.html.

Pour essayer ceci sur votre ordinateur local, mettez le passager/métis en mode production. Remplacer la méthode local_request? sur votre ApplicationController comme ceci:

class ApplicationController 
    def local_request? 
    false 
    end 
end 

Si vous souhaitez expérimenter avec un comportement dynamique, vous pouvez vérifier la méthode de classe rescue_from sur ActionController.

+0

merci pour votre réponse, c'est utile –

0

Que diriez-vous

map.connect '*url', :controller => "not_found" 

comme dernière entrée routes.rb? Je pense que ça devrait faire l'affaire, n'est-ce pas?

+0

est-il pas moyen de « sauver » l'erreur comme vous le feriez si vous aviez une erreur ActiveRecord? –

+0

Il n'y a pas d'erreur! C'est juste le routage arrive. – alamar