Post

Depuración en Ruby on Rails

Publicado en Desarrollo el 5 de febrero de 2010 by Pau | Tags: ,

En Ruby on Rails sólo las vistas pueden enviar datos formateados a la salida estándar (el documento HTML en este caso), así que en los demás casos la depuración de la aplicación puede llegar a ser algo tediosa. En este artículo vamos a introducir algunos trucos útiles para depurar programas en Ruby on Rails, separándolos según sean aplicables en vistas o controladores.

Vistas

El caso de las vistas es el más sencillo: basta con utilizar la instrucción “debug”. Por ejemplo, en una vista de la clase “Project” podríamos escribir:

<%= debug @project %>

Y obtendremos una descripción del objeto en cuestión en formato YAML como la que sigue:

--- !ruby/object:Project
attributes:
name: Test
created_at: 2010-02-04 16:00:37
updated_at: 2010-02-04 16:00:37
id: "13"
description: This is a project for testing
attributes_cache: {}

Esto mismo puede obtenerse también con una línea como la siguiente:

<%= simple_format @project.to_yaml %>

Controladores

El caso de los controladores es algo más sutil. Podríamos añadir datos a una variable y mostrar el contenido de la misma a través de una vista, pero es mucho más sencillo utilizar el Log de Ruby on Rails. En desarrollo, el log se guarda en el archivo development.log.

Para enviar texto de depuración al log, podemos utilizar el siguiente método:

logger.debug "Texto de depuración"

Para leer el contenido del archivo de logs podemos abrirlo sin más con un editor o con el entorno de desarrollo que estemos utilizando, aunque hay un truco. Si utilizamos Linux o Mac OS, podemos escribir en el Terminal (desde la carpeta de la aplicación):

tail -f log/development.log

Esta instrucción nos mostrará en pantalla el final del archivo, y, lo que es más importante, irá añadiendo a la salida los nuevos mensajes conforme éstos se vayan añadiendo al log. De esta manera podemos hacer un seguimiento más preciso de la ejecución de nuestra aplicación.

Para saber más

La mejor referencia sobre depuración es, evidentemente, la guía oficial de Ruby on Rails. En la guía hay también una explicación muy detallada del uso de ruby-debug, la herramienta de depuración propia de Ruby.

Compartir
DiggMenéamedel.icio.usFacebookReddit

Responder