web-dev-qa-db-ja.com

Stop Railsコンソールはループの終わりにオブジェクトを出力しません

たとえば、特定のモデルのすべてのインスタンスをループし、それぞれから何かを出力すると、最後にirbはオブジェクト全体を出力します。

オブジェクトが数百行かかる場合、実際に探していたものが表示されるまでに長い道のりがあります。 Railsコンソールでこれを無効にする方法はありますか?

74
dsp_099

一般にエコーを無効にしたくない場合は、1つのコマンドラインで複数の式を呼び出すこともできます。最後の式の出力のみが表示されます。

big_result(input); 0
92
aef

conf.echo = falseを呼び出すと、戻り値は出力されません。これは、Rails console。

永続的にしたい場合は、irb configに追加してください。

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

コンソールが戻り値を出力するのを一時的に停止するには、ループまたは関数の最後で、リターンを押す前にnilステートメントを発行します。

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

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

record.each do |r|
  puts r.properties
end; 0
31
RajaRaviVarma