Estoy buscando una forma de volcar la estructura de un objeto, similar a las funciones de PHP print_r
y var_dump
por motivos de depuración.
ruby-on-rails
ruby
Daniel Rikowski
fuente
fuente
puts theobject.inspect.gsub(",", "\n")
En vistas:
En controladores, modelos y otro código:
Fuente
fuente
En una vista que puede utilizar
<%= debug(yourobject) %>
, generará una vista YAML de sus datos. Si desea algo en su registro, debe usarlogger.debug yourobject.inspect
.fuente
También puede usar YAML :: dump shorthand ( y ) en la consola de Rails:
Si solo desea obtener una vista previa del contenido de algunas cadenas, intente usar raise (por ejemplo, en modelos, controladores o algún otro lugar inaccesible). Obtienes el backtrace gratis :)
También te animo a que pruebes ruby-debug :
¡Es increíblemente útil!
fuente
Puede utilizar
puts some_variable.inspect
. O la versión más corta:p some_variable
. Y para una salida más bonita, puede usar la gema awesome_print .fuente
Si solo desea que los datos relevantes se muestren en stdout (la salida del terminal si está ejecutando desde la línea de comando), puede usar
p some_object
.fuente
Las respuestas anteriores son geniales, pero si no desea usar la consola (terminal), en Rails puede imprimir el resultado en la Vista utilizando el Asistente de depuración ActionView :: Helpers :: DebugHelper
resultados (en el navegador)
fuente
Yo uso esto :)
fuente
Últimamente estoy usando el método de awesome_print
ap
que funciona tanto en la consola como en las vistas.La salida de color específica del tipo realmente marca la diferencia si necesita escanear visualmente
String
uNumeric
objetos (aunque tuve que modificar un poco mi hoja de estilo para obtener un aspecto pulido)fuente
Recientemente me he convertido en un fanático de PRY , lo he encontrado increíblemente para hacer cosas como inspeccionar variables, depurar código en ejecución e inspeccionar código externo. Podría ser un poco exagerado responder a esta pregunta específica.
fuente