Impedir que la consola rails imprima el objeto al final de un bucle


Si, por ejemplo, hago un bucle a través de todas las instancias de un modelo dado y obtengo algo de cada una, al final, irb todavía imprimirá todo el objeto.

Si el objeto termina tomando cientos de líneas, será un largo camino hasta que vea lo que realmente estaba buscando. ¿Hay alguna forma de desactivar esto en la consola de rails?

Author: dsp_099, 2012-11-08

3 answers

Si no desea desactivar el eco en general, también puede llamar a múltiples expresiones en una línea de comandos. Solo se mostrará la salida de la última expresión.

big_result(input); 0
 81
Author: aef,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-08 08:47:36

Llame a conf.echo = false y no imprimirá el valor devuelto. Esto funciona para cualquier sesión irb, no solo para la consola Rails.

En caso de que quiera hacerlo permanente, agréguelo a su configuración de irb.

echo 'IRB.conf[:ECHO] = false' >> $HOME/.irbrc
 84
Author: lulalala,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-17 00:24:01

Para detener temporalmente que la consola imprima los valores devueltos, puede emitir una instrucción nil al final de su bucle o función, pero antes de presionar return.

record.each do |r|
  puts r.properties
end; nil

O también puede ser un número, si desea reducir la escritura. Pero puede ser confuso en escenarios, que no se me ocurre.

record.each do |r|
  puts r.properties
end; 0
 26
Author: RajaRaviVarma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-21 06:09:21