如果我循环遍历给定模型的所有实例并从每个实例输出一些内容,最后 irb 仍将打印整个对象。
如果对象最终占用了数百行,那么在我看到我真正想要的东西之前,还有很长的路要走。有没有办法在 Rails 控制台中禁用此功能?
如果您一般不想禁用回显,您也可以在一个命令行中调用多个表达式。仅显示最后一个表达式的输出。
big_result(input); 0
调用
conf.echo = false
,不会打印返回值。这适用于任何 irb 会话,而不仅仅是 Rails 控制台。
如果您想使其永久化,请将其添加到您的 irb 配置中。
echo 'IRB.conf[:ECHO] = false' >> $HOME/.irbrc
Ruby 3.3 更新: 作为
irb
改进的一部分,我们现在可以使用 ;
省略返回值
参考:https://blog.saeloun.com/2024/02/12/what-is-new-in-ruby-3-3/
要暂时停止控制台打印返回值,您可以在循环或函数末尾但在按 return 之前发出
nil
语句。
record.each do |r|
puts r.properties
end; nil
或者如果您想减少打字,它也可以是数字。但在场景中它可能会令人困惑,我无法想象。
record.each do |r|
puts r.properties
end; 0
这让我很沮丧,因为我使用的是
pry-rails
gem,某些解决方案对我不起作用。
所以这里是分两步进行的:
;
添加到最后一个命令的末尾就足以使打印输出静音。ActiveRecord::Base.logger.silence do
# code here
end
如果你想运行这个
User.all do |user|
puts user.first_name
end
然后这将确保没有其他内容打印到屏幕上:
ActiveRecord::Base.logger.silence do
User.all do |user|
puts user.first_name
end
end;
(别忘了最后的
;
)