2012-11-08 3 views
55

Wenn ich sagen, Schleife durch alle Instanzen eines bestimmten Modells und etwas von jedem ausgeben, am Ende wird irb immer noch das gesamte Objekt drucken.Stoppen Schienen Console von Drucken des Objekts am Ende einer Schleife

Wenn das Objekt endet, Hunderte von Zeilen zu nehmen, wird es ein langer Weg nach oben, bevor ich sehe, was ich eigentlich suchte. Gibt es eine Möglichkeit, dies in der Rails-Konsole zu deaktivieren?

Antwort

74

Wenn Sie das Echo im Allgemeinen nicht deaktivieren möchten, können Sie auch mehrere Ausdrücke in einer Befehlszeile aufrufen. Nur die Ausgabe des letzten Ausdrucks wird angezeigt.

big_result(input); 0 
+2

das ist eigentlich was ich wollte. –

+2

Ausgezeichnet, danke! So einfach. – blindsnowmobile

75

Rufen Sie conf.echo = false und es wird nicht gedruckt den Rückgabewert. Dies funktioniert für jede IRB-Sitzung, nicht nur für die Rails-Konsole.

Falls Sie es dauerhaft machen möchten, fügen Sie es zu Ihrer irb-Konfiguration hinzu.

+0

Was würden Sie tun, wenn Sie dies immer standardmäßig haben möchten? –

+0

@Aczipheran Ich denke, es in die Rails-Initialisierer setzen würde funktionieren. – lulalala

+0

Danke für die Antwort, ich fand tatsächlich, dass nur die Zeile "IRB.conf [: ECHO] = false" zu werfen, in meiner .irbrc-Datei kümmerte sich darum. Das ist natürlich auch das Echo in all meinen IRB-Sessions, aber damit bin ich einverstanden. –

24

vorübergehend Um die Konsole aus dem Drucken der Rückgabewerte stoppen Sie eine nil Anweisung am Ende der Schleife oder Funktion ausgeben kann, aber vor der Rückkehr drücken.

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

Oder es kann auch eine Nummer sein, wenn Sie die Eingabe verringern möchten. Aber es kann in Szenarien verwirrend sein, an die ich nicht denken kann.

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

Das hat geholfen. Vielen Dank –

Verwandte Themen