Error Handling en Rails 3 [HowTo]


Bien, has construido una aplicación Rails que es genial, pero al tener un comportamiento errático por las razones que sean, esta solo muestra una página X que al usuario no le va a agradar... ¿Cómo hacer esa experiencia más agradable? Hay muchísimos errores a tratar, y rails incluye en cada proyecto generado diferentes páginas (feas jajaja) para mostrar en al menos los más importantes (404, 500 y 422); Veamos pues, como mostrarle al usuario algo más agradable para suavizar el efecto que tiene en su navegación la aparición repentina de un error:

1.- Crea páginas de error más acordes con tu sitio web

Así es, No dejes las defaults. Busca las páginas que rails renderiza en cada uno de los errores mencionados dentro del directorio public de tu aplicación y personaliza su apariencia. Un poco de inspiración por acá... ¡El diseño llega hasta a los mensajes de error! (o bien, debería jajajaja).

2.- Probando en el servidor local

Ahora tienes que hacer unas modificaciones de manera que puedas revisar cómo se verían estas páginas nuevas en tu servidor de producción, aún estando en el local. Para esto, en application_controller.rb añadimos el siguiente método:

def local_request?
   false
 end

Y luego, iniciamos nuestro servidor con:

rails s -e production

Después trata de acceder a una página que NO EXISTA dentro de tu aplicación y deberías ver tu nueva página de error 404 por ejemplo. Finalmente recuerda que debes quitar el método que agregaste arriba dentro de tu application_controller.rb antes de subir la aplicación a un servidor de producción real.