Rails Console(irb)のアウトプット待ちがメンドイときに消す方法
小ネタです。Rails Console(irb)で適当な処理を実行すると返却値が出力されますよね?例えば以下のeachメソッドの返却値はレシーバ自身なので、eachブロックでゴニョゴニョ処理をするとレシーバが出力されます
> %w/hoge huga foo bar/.each{|e| e} => ["hoge", "huga", "foo", "bar"]
ちょっとした実行なら便利です
が、たまにステージングエリアのRails Consoleで大量のリソースをeachブロックで処理をする時とかに、これが少し邪魔になることになります
> Resource.where(statements).each{|record| record} Resource Load ... => [#<Resource id: 1, hoge: "aaaa", huga: "bbbb", foo: "cccc", bar: "dddd">, ...(以下略
返却値のActiveRecord::Relationオブジェクトが小さければいいですが、大きいと出力に時間がかかりますし、過去の情報が流れてしまいます
解決策
irbの出力は最後に実行された文の返却値みたいなので単純に; 0
を追加すればかなりさっぱりします
> Resource.where(statements).each{|record| record}; 0 Resource Load ... => 0
あースッキリした