Halten Sie die Rails-Konsole davon ab, das Objekt am Ende einer Schleife auszudrucken


84

Wenn ich beispielsweise alle Instanzen eines bestimmten Modells durchlaufe und von jedem etwas ausführe, druckt irb am Ende immer noch das gesamte Objekt.

Wenn das Objekt Hunderte von Zeilen benötigt, ist es ein langer Weg, bis ich sehe, wonach ich tatsächlich gesucht habe. Gibt es eine Möglichkeit, dies in der Rails-Konsole zu deaktivieren?

Antworten:


109

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

big_result(input); 0

3
das ist eigentlich was ich wollte.
dsp_099

3
Ich mache oftbig_result(input); nil
nroose

100

Rufen Sie an conf.echo = falseund der Rückgabewert wird nicht gedruckt. Dies funktioniert für jede IRB-Sitzung, nicht nur für die Rails-Konsole.

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

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

Was würden Sie tun, wenn dies standardmäßig immer der Fall sein soll?
Peter Berg

@Accipheran Ich denke, es in die Rails-Initialisierer zu setzen würde funktionieren.
Lulalala

Vielen Dank für die Antwort, ich habe tatsächlich festgestellt, dass das IRB.conf[:ECHO] = falseeinfache Werfen der Zeile in meiner .irbrc-Datei sich darum gekümmert hat. Das schaltet natürlich auch das Echo in all meinen IRB-Sessions aus, aber damit bin ich einverstanden.
Peter Berg

40

Um die Konsole vorübergehend daran zu hindern, die Rückgabewerte zu drucken, können Sie nilam Ende Ihrer Schleife oder Funktion, jedoch vor dem Drücken der Eingabetaste, eine Anweisung ausgeben .

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

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

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

Du bist der beste!
sickrandir
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.