在IRB中审议本届会议:
>> for a in 1..5 do
?> puts a
>> end
1
2
3
4
5
=> 1..5
>> 如何抑制输出=> 1..5?如果我在Rails控制台会话中这样做,这一点很重要:
for post in Post.find(:all) do
if post.submit_time > Time.now
puts "Corrupted post #{post.id} is from the future"
end
end我不希望所有的帖子被打印成一个数组在最后。如何抑制输出?
我确信还有其他方法可以做到这一点,比如find_each或Ruby,但我更感兴趣的是在交互式会话中这样做。
发布于 2012-07-23 21:50:04
只需将nil添加到命令的末尾即可。它不会扼杀irb的响应线,但是如果你有一些大的对象,它避免了你的屏幕爆炸。
1.9.3p194 :036 > for a in 1..5 do; puts a; end; nil
1
2
3
4
5
=> nil 发布于 2012-07-23 21:50:53
这是IRB的核心功能。输入一个表达式,它会打印它的值。在本例中,值为1..5。其他输出只是一个副作用。
但是,您可以“最小化”返回(并打印)值。因此,不需要大量的fat AR模型,您可以返回一些小的东西。
试着做这样的事情:
% irb
1.9.3p194 :001 > for a in 1..5 do
1.9.3p194 :002 > puts a
1.9.3p194 :003?> end; nil
1
2
3
4
5
=> nil https://stackoverflow.com/questions/11621037
复制相似问题