Bonjour,
Je voulais savoir quel était la manière propre d’afficher une erreur
404. Sur le net, j’ai constaté qu’une manière était de faire :
render :file => “#{RAILS_ROOT}/public/404.html”,:status => 404
Mais je trouve ça un peu compliqué pour ce que c’est. En effet, ayant
l’habitude de développer avec Cherrypy (une librairie Python), il
existe une méthode toute simple qui est cherrypy.NotFound()
En cherchant dans la documentation Rails, je n’ai trouvé aucune
méthode qui pourrait ressembler à ça. Donc, je voulais avoir un peu
plus d’avis sur la méthode à employer. C’est sûr que l’avantage du
système précédent, est qu’au moins on est sur de la représentation à
afficher. Mais Rails est tellement basé sur les conventions que ça me
parait bizarre, qu’il y ait pas quelque chose de plus “simple” avec
récupération automatique du fichier 404.html.
Merci pour vos informations et bonne
journée
Cyril M.
On 6/7/07, Cyril M. [email protected] wrote:
existe une méthode toute simple qui est cherrypy.NotFound()
YAKA
Tu peux par exemple ajouter la méthode suivante dans ton
ApplicationControler :
def renderNotFound( path = “#{RAILS_ROOT}/public/404.html” )
render :file => path,:status => 404
end
Et 'op, te voilà avec un renderNotFound() tout simple
–
Éric Daspet
http://eric.daspet.name/
Autre solution :
tu crées un controlleur “erreur404”, et tu personalise le fichier
index.rhtml comme tu le veux.
Il ne te reste plus qu’à rajouter ça à al fin de ton fichier “routes.rb”
:
map.connect ‘*erreur’, :controller=>“erreur404”
Cyril :
En cherchant dans la documentation Rails, je n’ai trouvé aucune
méthode qui pourrait ressembler à ça. Donc, je voulais avoir un
peu plus d’avis sur la méthode à employer. C’est sûr que l’avantage
du système précédent, est qu’au moins on est sur de la représentation
à afficher. Mais Rails est tellement basé sur les conventions que
ça me parait bizarre, qu’il y ait pas quelque chose de plus “simple”
avec récupération automatique du fichier 404.html.
Voir AC::B#rescue_action et AC::B#rescue_action_in_public
que tu peux éventuellement redéfinir, si le comportement par
défaut ne te convient pas, dans la classe fille ApplicationController.
-- Jean-François.
–
À la renverse.
On 6/7/07, Eric D. [email protected] wrote:
l’habitude de développer avec Cherrypy (une librairie Python), il
end
Et 'op, te voilà avec un renderNotFound() tout simple
Ou même en faire un plugin tout simple
Donc, je vois qu’il faut que j’utilise tout simplement la modularité
de Rails. Mais rien n’est standard.
Merci pour vos réponses.
–
Cyril M.