2012-11-08 6 views
55

もし私が与えられたモデルのすべてのインスタンスをループし、それぞれから何かを出力すると、最後にirbはオブジェクト全体を出力します。ループのコンソールがループの終わりにオブジェクトを印刷するのを止めてください

オブジェクトが何百行もの行を終えると、私が実際に探していたものが見えるまでには長い道のりになります。レールコンソールでこれを無効にする方法はありますか?

答えて

74

通常、エコーを無効にしたくない場合は、1つのコマンドラインで複数の式を呼び出すこともできます。最後の式の出力だけが表示されます。一時的に、あなたがたがリターンを押す前に、あなたのループまたは関数の最後にnil文を発行することができ、戻り値の印刷からコンソールを停止するには

big_result(input); 0 
+2

これは実際に私が欲しかったものです。 –

+2

優秀、ありがとう!とても簡単。 – blindsnowmobile

75

conf.echo = falseと呼び出し、戻り値は印刷されません。これは、Railsコンソールだけでなく、どのirbセッションでも機能します。

永久にしたい場合は、irb設定に追加してください。

echo 'IRB.conf[:ECHO] = false' >> $HOME/.irbrc 
+0

これを常にデフォルトにする場合はどうすればよいですか? –

+0

@Accipheran私はそれをRails初期化子に入れてもうまくいくと思います。 – lulalala

+0

応答してくれてありがとう、私は実際に私の.irbrcファイルに 'IRB.conf [:ECHO] = false'という行を投げただけで気にしました。もちろん、私のirbセッションではエコーも変わりますが、私はそれで大丈夫です。 –

24

record.each do |r| 
    puts r.properties 
end; nil 

入力を減らしたい場合は、数字を入力することもできます。しかし、それは私が考えることができないシナリオで混乱することがあります。

record.each do |r| 
    puts r.properties 
end; 0 
+0

これが助けになりました。ありがとう –

関連する問題