Szukam sposobu na zrzucenie struktury obiektu, podobnej do funkcji PHP print_r
i var_dump
do debugowania.
ruby-on-rails
ruby
Daniel Rikowski
źródło
źródło
puts theobject.inspect.gsub(",", "\n")
W widokach:
W kontrolerach, modelach i innym kodzie:
Źródło
źródło
W widoku możesz użyć,
<%= debug(yourobject) %>
który wygeneruje widok YAML twoich danych. Jeśli chcesz coś znaleźć w swoim logu, powinieneś użyćlogger.debug yourobject.inspect
.źródło
Możesz także użyć YAML :: dump shorthand ( y ) w konsoli Rails:
Jeśli chcesz po prostu przejrzeć zawartość łańcucha, spróbuj użyć podniesienia (na przykład w modelach, kontrolerach lub innym niedostępnym miejscu). Otrzymujesz ślad za darmo :)
Gorąco zachęcam do wypróbowania ruby-debug :
To niezwykle pomocne!
źródło
Możesz użyć
puts some_variable.inspect
. Lub krótsza wersja:p some_variable
. A dla ładniejszego wydruku możesz użyć klejnotu awesome_print .źródło
Jeśli chcesz tylko, aby odpowiednie dane były wyświetlane na stdout (dane wyjściowe terminala, jeśli korzystasz z wiersza poleceń), możesz użyć
p some_object
.źródło
Wcześniejsze odpowiedzi są świetne, ale jeśli nie chcesz używać konsoli (terminala), w Railsach możesz wydrukować wynik w widoku za pomocą pomocnika Debug ActionView :: Helpers :: DebugHelper
wyniki (w przeglądarce)
źródło
Używam tego :)
źródło
Ostatnio używam metody awesome_print ,
ap
która działa zarówno na konsoli, jak iw widokach.Kolorowe dane wyjściowe specyficzne dla typu naprawdę robią różnicę, jeśli musisz wizualnie przeskanować
String
lubNumeric
obiektów (chociaż musiałem trochę poprawić mój arkusz stylów, aby uzyskać dopracowany wygląd)źródło
Ostatnio stałem się fanem PRY , odkryłem , że jest niesamowity do robienia takich rzeczy, jak sprawdzanie zmiennych, debugowanie uruchomionego kodu i inspekcja kodu zewnętrznego. Odpowiedź na to pytanie może być przesadą.
źródło