2012-11-08 18 views
55

Jeśli, na przykład, przepętrzę wszystkie instancje danego modelu i wypiszę coś z każdego, na końcu, irb będzie nadal drukować cały obiekt.Zatrzymaj konsolę, aby wydrukować obiekt na końcu pętli.

Jeśli obiekt kończy się, biorąc setki linii, to będzie dużo wyżej, zanim zobaczę, czego naprawdę szukałem. Czy istnieje sposób wyłączenia tego w konsoli rails?

Odpowiedz

74

Jeśli nie chcesz wyłączyć echa w ogóle, możesz również wywołać wiele wyrażeń w jednym wierszu poleceń. Wyświetlane będą tylko wyniki ostatniego wyrażenia.

big_result(input); 0 
+2

to jest to, co chciałem. –

+2

Doskonale, dziękuję! Tak prosty. – blindsnowmobile

75

Zadzwoń pod conf.echo = false i nie wydrukuje zwracanej wartości. Działa to w przypadku każdej sesji irbowej, nie tylko konsoli Rails.

Jeśli chcesz, aby był stały, dodaj go do swojej konfiguracji irb.

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

Co byś zrobił, gdybyś zawsze miał to domyślnie? –

+0

@Accipheran Myślę, że umieszczenie go w inicjalizatorach Railsa zadziałałoby. – lulalala

+0

Dzięki za odpowiedź, faktycznie znalazłem, że właśnie wyrzucenie linii 'IRB.conf [: ECHO] = false', w moim pliku .irbrc zajęło się tym. To oczywiście również zwroty echa we wszystkich moich sesjach irbowych, ale nie przeszkadza mi to. –

24

Aby tymczasowo zatrzymać konsolę drukowanie wartości zwracanych można wydać nil oświadczenie na końcu pętli lub funkcji, ale przed naciśnięciem powrót.

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

Lub może to być również liczba, jeśli chcesz zmniejszyć pisanie. Ale może to być mylące w scenariuszach, o których nie myślę.

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

Pomogło to. dzięki –