¿Cómo se puede ocultar la salida de la base de datos en la consola Rails?


103

En la versión más reciente de Rails, supongo que a partir de la 3, las consultas de la base de datos se envían a la consola. Esto es útil la mayor parte del tiempo, pero ¿cómo puedes ocultarlo cuando no quieres verlo?

Respuestas:


177

Una mejor manera de hacer esto es escribiendo esto en la consola:

ActiveRecord::Base.logger.level = 1 

ya que evita problemas al intentar usar un puntero a un registrador que está configurado en nil (fuente: Desactivar el inicio de sesión de Rails SQL en la consola )

Para volver a encenderlo

ActiveRecord::Base.logger.level = 0

31
Gracias. Y para volver a encenderla, ActiveRecord::Base.logger.level = 0.
— thebenedict

¿Alguna idea de cómo hacer esto con Mongoid?
— Jesse Farmer

29
ActiveRecord::Base.logger = nil

desde aqui


6
Esto puede hacer que NoMethodErrors con ActiveRecord espere ActiveRecord::Base.loggerser un objeto en lugar de nil.
— Aaron B. Russell

9

Respuesta corta ... En el archivo development.rb cambie o agregue el valor de config.log_levelpara que haya una línea como

config.log_level = :info

1
No, esto no parece tener ningún impacto en lo que sucede en la consola. Además, preferiría una solución que no requiera que cambie los archivos del proyecto.
— Roger Ertesvag

Ok, la solución me funciona con webrick pero es posible que esté usando otro servidor o ejecutándose en modos de producción o prueba.
— madth3

3
Funciona para cambiar el contenido de los archivos de registro. Pero la pregunta es sobre la consola de rieles, no sobre los archivos de registro.
— Roger Ertesvag

6

De un amigo mío:

your_query; nil

1
Para mejorar la calidad de su publicación, incluya cómo y por qué su publicación resolverá el problema.
— Mick MacCallum

7
Esto evitará que su consola ruby ​​descargue los resultados de las expresiones en la consola, pero no evitará que ActiveRecord descargue información SQL en el registrador de rieles.
— eremzeit

1
Para los comentaristas anteriores: esto responde a la pregunta, y es la única respuesta que funcionó para mí, ¿qué más se podría desear?
— valk

3
No creo que esto responda a la pregunta en absoluto. como dijo @eremzeit, esto no evitará que todas las consultas SQL se vuelvan a su consola, solo evitará que se imprima el valor de retorno de ese comando ...
— opsidao

1
No responde la pregunta, pero es útil para no repetir los resultados
— Rutger

4

En Rails 3.2, configuración

config.logger.level = Logger::INFO

funcionó bien para mí para desactivar la salida SQL.


Sin embargo, ¿esto todavía registra la salida SQL en el archivo de registro?
— Joshua Pinter

-2

Veo que ya obtuvo la respuesta necesaria, aunque me gustaría recomendarle la gema de los 'activos silenciosos', la mayoría de los datos de registro serán la compilación de activos y las inclusiones, esta gema eliminará eso y aún generará las consultas y el comportamiento de los datos.

Que te diviertas


1
La pregunta es acerca de la salida de la consola, no los archivos de registro
— Roger Ertesvåg
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.