web-dev-qa-db-fra.com

Empêche Rails console d'imprimer l'objet à la fin d'une boucle

Si je dis, je passe en revue toutes les instances d'un modèle donné et que je produis quelque chose à la fin, irb imprimera toujours l'objet entier.

Si l'objet finit par prendre des centaines de lignes, ce sera un long chemin avant de voir ce que je cherchais réellement. Existe-t-il un moyen de désactiver cela dans la console Rails?

74
dsp_099

Si vous ne souhaitez pas désactiver l'écho en général, vous pouvez également appeler plusieurs expressions sur une seule ligne de commande. Seule la sortie de la dernière expression sera affichée.

big_result(input); 0
92
aef

Appel conf.echo = false et il n'imprimera pas la valeur de retour. Cela fonctionne pour n'importe quelle session IRB, pas seulement Rails console.

Si vous souhaitez le rendre permanent, ajoutez-le à votre configuration irb.

echo 'IRB.conf[:ECHO] = false' >> $HOME/.irbrc
93
lulalala

Pour empêcher temporairement la console d'imprimer les valeurs de retour, vous pouvez émettre une instruction nil à la fin de votre boucle ou fonction, mais avant d'appuyer sur la touche de retour.

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

Ou il peut aussi s'agir d'un nombre, si vous souhaitez réduire la saisie. Mais cela peut être déroutant dans des scénarios auxquels je ne peux pas penser.

record.each do |r|
  puts r.properties
end; 0
31
RajaRaviVarma