2010-07-27 10 views

Respuesta

82

En el controlador se puede:

render :text => @some_object.inspect 

Pero no se brindará su punto de vista.

Usted podría también:

Rails.logger.debug("My object: #{@some_object.inspect}") 

y ejecutar la cola de registro/development.log para ver la salida.

En la vista de la forma recommeneded es:

<%= debug(@some_object) %> 
+1

Esto está bien [documentado aquí] (http://guides.rubyonrails.org/debugging_rails_applications.html#the-logger). –

+0

He puesto <% = debug (@some_object)%> para mi objeto de instancia a la vista. Pero se imprime tal cual sin mostrarme el valor del objeto. – hatellla

+0

debug() intenta llamar a to_yaml() en el objeto. Si no puede, llama a inspeccionar() en su lugar. – Papipo

5

No sé print, pero puts nunca me ha fallado. Su hello world estará en la consola y en los registros, y el flujo normal continuará.
¿Te entendí correctamente?

+1

oh, en realidad, puede que mostrar en la página web? –

1

En realidad, la sugerencia de Nikita no es malo. Pero por lo general es difícil ver los datos en el terminal porque el tamaño del búfer de la pantalla puede ser limitado y está lleno de datos previos de la representación previa de las páginas.

Pero, dicen en el Mac, basta con que el búfer de pantalla es lo suficientemente grande, y también utilizar en la terminal rails server la tecla Comandok para borrar toda la memoria intermedia de la primera pantalla, y utilizar el navegador obtener una página web, y ahora usa Comandof para buscar la cadena que imprimiste, y funciona bastante bien también. En realidad, si se usa Comandok se borra primero todo el búfer de la pantalla, y la impresión siempre debe caber en el búfer de la pantalla.

2

puede utilizar aborto con inspeccione

abort params[:whatevs].inspect 

o

abort @my_variable.inspect 

para JSON formato

render json: JSON.pretty_generate(JSON.parse(@my_variable.to_json)) 
Cuestiones relacionadas