Pregunta

¿Cuál es la mejor manera para mí para determinar un controlador el valor de la variable durante la ejecución?

Por ejemplo, hay una manera que puedo insertar una pausa en el código, y hacer que el valor de la variable a ser la salida a la pantalla (o en el registro)?

¿Fue útil?

Solución

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

O, usted puede instalar el depurador (gem install ruby-debug) y, a continuación, inicie el servidor de desarrollo con el --debugger de la bandera.Luego, en el código, llame a la debugger de la instrucción.

En el interior del símbolo de depurador, tiene muchos comandos, incluyendo p para imprimir el valor de una variable.

Actualización: aquí un poco más sobre ruby-debug.

Otros consejos

Si usted tiene un control variable de instancia con nombre @foo, a continuación, en el controlador, usted puede simplemente hacer algo como:

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

Además, se puede extraer el valor de su plantilla de vista el uso de:

<%= debug @foo %>

Yo prefiero usar la de inspeccionar método así:

raise @foo.inspect

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

Resumen de Jordi Bunster, Juan Topley, y Jaryl:

I.De forma rápida y sucia:

raise @foo.inspect

en tu controlador.O

<% raise @foo.inspect %>

en su vista.

II.Adecuado registro para usted development.log:

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

III. De pleno derecho de la depuración:

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

En el interior del símbolo de depurador, tiene muchos comandos, incluyendo p para imprimir el valor de una variable.

Elevar una excepción es la manera más rápida si usted sólo tiene que mirar en un valor, pero vale la pena el tiempo para aprender cómo usar el depurador correctamente.Es raro que sólo tendría que ver el valor de una variable, es probable que esté tratando de encontrar un error en su código, y eso es lo que un depurador es para.

El envío de la información para el registro de desarrollo es más lento que el de las otras dos opciones aquí, tan lejos si usted aprende cómo utilizar el depurador (quien quiera leer a través de los archivos de registro).Utilizar el registrador de la producción, usted va a querer para ver cuál era el valor cuando alguien te llama y dice que todo está roto.

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

$stderr.imprimir("lo")

Su simple y hace el trabajo.

  1. Agregar de palanca se mueve a Gemfile: gem 'pry-moves'
  2. Insertar binding.pry donde usted desea dejar de
  3. El tipo de la variable nombre para ver su valor

A continuación, seguir escribiendo c, mover a la siguiente línea con n o realizar otras acciones de depuración hasta que se resuelva el problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top