Possible Duplicate:
Rails console, how to stop output of return value?
Consider this session in IRB:
>> for a in 1..5 do
?> puts a
>> end
1
2
3
4
5
=> 1..5
>>
How do I suppress the output => 1..5
? This is important if I do this in a Rails console session:
for post in Post.find(:all) do
if post.submit_time > Time.now
puts "Corrupted post #{post.id} is from the future"
end
end
I don't want all the Posts to be printed as an array at the end. How do I suppress that output?
I am sure there are other ways of doing this, like find_each
or a Ruby script but I am more interested in doing this in an interactive session.
Just add nil
to the end of your command. It doesn't kill irb's response line, but if you have some large object, it avoids blasting your screen.
1.9.3p194 :036 > for a in 1..5 do; puts a; end; nil
1
2
3
4
5
=> nil
This is core IRB functionality. You type an expression in, it prints its value. In this case, the value is 1..5
. Other output is just a side effect.
You can, however, "minimize" returned (and printed) value. So, instead of big array of fat AR models, you can return something small.
Try something like this:
% 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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With