停止Rails控制台在循环结束时打印出对象


84

如果我说遍历给定模型的所有实例并从每个实例输出一些内容,最后,irb仍将打印整个对象。

如果该对象最终占用了数百行,则距离我要查找的内容还有很长的路要走。有没有办法在Rails控制台中禁用此功能?

Answers:


109

通常,如果您不想禁用回显,也可以在一个命令行中调用多个表达式。仅显示最后一个表达式的输出。

big_result(input); 0

3
这实际上是我想要的。
dsp_099

3
我经常这样做big_result(input); nil
nroose

100

调用conf.echo = false,它将不显示返回值。这适用于任何irb会话,而不仅仅是Rails控制台。

如果您想使其永久,请将其添加到您的irb配置中。

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

如果您希望在默认情况下始终如此,该怎么办?
彼得·伯格

@Accipheran我猜把它放在Rails初始化器中会起作用。
卢拉拉2014年

感谢您的答复,我实际上发现只要IRB.conf[:ECHO] = false在.irbrc文件中加上该行就可以解决此问题。当然,这在我所有的irb会话中也都产生了回声,但是我对此表示同意。
彼得·伯格

40

要暂时停止控制台打印返回值,可以nil在循环或函数结束时但在按返回键之前发出一条语句。

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

或者,如果您想减少打字,也可以是数字。但这在我无法想到的场景中会造成混乱。

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

你是最棒的!
sillrandir
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.