En PHP, CGI o en la Vista de RoR, podemos imprimir fácilmente la información de depuración. ¿Qué tal en el controlador, cómo podemos decir, print "hello world"
(a la salida de página web) y volver para continuar con la vista, o detener el controlador allí?En Ruby on Rails, ¿cómo imprimimos la información de depuración dentro de un controlador?
Respuesta
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) %>
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?
oh, en realidad, puede que mostrar en la página web? –
Puede depurar en la vista: <%= debug @post %>
. Más información: http://guides.rubyonrails.org/debugging_rails_applications.html
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.
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))
- 1. Ruby on Rails: Depuración de tareas rastrillo
- 2. ¿Cómo incluir un controlador con una gema Ruby on Rails?
- 3. Renderizar parcial en controlador usando Ruby On Rails
- 4. Agregar una acción a un controlador existente (Ruby on Rails)
- 5. Acción de transacción con Ruby On Rails
- 6. Ruby on Rails - Variable del controlador de acceso del modelo
- 7. Ruby on Rails Debug Pregunta
- 8. Barra de notificaciones en Ruby on Rails
- 9. ¿Cómo Monkey Patch en Ruby on Rails?
- 10. Ruby on rails application root
- 11. ¿Cómo se pasan los datos de un controlador a un modelo con Ruby on Rails?
- 12. Cómo dominar Ruby on Rails
- 13. Ruby on Rails: Cómo ordenar un collection_select
- 14. ¿Cómo funciona Ruby on Rails?
- 15. Usos de Ruby on Rails
- 16. Ruby on Rails Switch
- 17. Crear archivo descargable en Ruby on Rails
- 18. Ruby on Rails will_paginate
- 19. ¿Cómo determinar el valor de una variable de controlador durante la ejecución en Ruby on Rails?
- 20. Ruby vs. Ruby on Rails
- 21. Cómo formatear un número en un controlador ruby on rails, number_with_delimiter solo funciona en las vistas
- 22. Ruta de Ruby on rails a un método personalizado en el controlador desde la vista
- 23. Cómo caché JSON en ruby on rails?
- 24. Copie un archivo en Ruby on Rails
- 25. Ruby on Rails enviar
- 26. Carga de archivos en Ruby on Rails
- 27. función Expose en Ruby on Rails
- 28. Ruby on Rails convención plural (controlador) y singular (modelo) - explicación
- 29. Ruby on Rails Generar vistas
- 30. Docsplit Ruby on Rails
Esto está bien [documentado aquí] (http://guides.rubyonrails.org/debugging_rails_applications.html#the-logger). –
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
debug() intenta llamar a to_yaml() en el objeto. Si no puede, llama a inspeccionar() en su lugar. – Papipo