2008-09-13 12 views

Respuesta

11

Sí. La forma más fácil es aumentar el valor como una cadena. De esta manera: raise @foo.to_s

O bien, puede instalar el depurador (gem install ruby-debug) y luego iniciar el servidor de desarrollo con el indicador --debugger. Luego, en su código, llame a la instrucción debugger.

Dentro del indicador del depurador, tiene muchos comandos, incluido p para imprimir el valor de una variable.

Actualización: aquí está a bit more about ruby-debug.

5

Si tiene una variable de instancia controlador llamado @foo, a continuación, en su controlador puede simplemente hacer algo como:

logger.debug "@foo is: #{@foo}" 

Además, puede generar el valor en su plantilla de vista usando:

<%= debug @foo %> 
5

yo prefiero usar el método de inspeccionar este modo:

raise @foo.inspect 

Tiene más información que to_s, como los valores de atributo.

3

Resumen de Jordi Bunster, John Topley y Jaryl:

I. Manera rápida y sucia:

raise @foo.inspect 

en su controlador. O

<% raise @foo.inspect %> 

en su vista.

II. Registro apropiado para usted development.log:

logger.debug "@foo == #{@foo.inspect}" 

III. Full-fledged debugging:

Instale el depurador (gem install ruby-debug) y luego inicie el servidor de desarrollo con el indicador --debugger. Luego, en su código, llame a la instrucción debugger.

Dentro del indicador del depurador, tiene muchos comandos, incluido p para imprimir el valor de una variable.

0

Plantear una excepción es la manera más rápida si solo necesita ver un valor, pero vale la pena el tiempo para aprender a usar el depurador correctamente. Es raro que solo necesites ver el valor de una variable, es probable que intentes encontrar un error en tu código, y para eso sirve un depurador.

Enviando la información al registro de desarrollo es más lento que cualquiera de las otras dos opciones aquí hasta ahora si aprende cómo usar el depurador (que quiere leer los archivos de registro). Use el registrador para la producción, va a querer ver cuál fue el valor cuando alguien lo llama y le dice que todo está roto.

0

Bueno, por lo general prefieren la salida de error estándar

$ stderr.print ("lo que sea")

Su simple y hace el trabajo.

Cuestiones relacionadas