首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抑制IRB输出?

抑制IRB输出?
EN

Stack Overflow用户
提问于 2012-07-23 21:46:40
回答 2查看 3.5K关注 0票数 8

可能重复: Rails console, how to stop output of return value?

在IRB中审议本届会议:

代码语言:javascript
复制
>> for a in 1..5 do
?>     puts a
>> end
1
2
3
4
5
=> 1..5
>> 

如何抑制输出=> 1..5?如果我在Rails控制台会话中这样做,这一点很重要:

代码语言:javascript
复制
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,但我更感兴趣的是在交互式会话中这样做。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-23 21:50:04

只需将nil添加到命令的末尾即可。它不会扼杀irb的响应线,但是如果你有一些大的对象,它避免了你的屏幕爆炸。

代码语言:javascript
复制
1.9.3p194 :036 > for a in 1..5 do; puts a; end; nil
1
2
3
4
5
 => nil 
票数 28
EN

Stack Overflow用户

发布于 2012-07-23 21:50:53

这是IRB的核心功能。输入一个表达式,它会打印它的值。在本例中,值为1..5。其他输出只是一个副作用。

但是,您可以“最小化”返回(并打印)值。因此,不需要大量的fat AR模型,您可以返回一些小的东西。

试着做这样的事情:

代码语言:javascript
复制
% 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 
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11621037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档