Estou procurando uma maneira de despejar a estrutura de um objeto, semelhante às funções do PHP print_r
e var_dump
por motivos de depuração.
ruby-on-rails
ruby
Daniel Rikowski
fonte
fonte
puts theobject.inspect.gsub(",", "\n")
Em visualizações:
Em controladores, modelos e outros códigos:
Fonte
fonte
Em uma visualização, você pode usar o
<%= debug(yourobject) %>
que irá gerar uma visualização YAML de seus dados. Se você quiser algo em seu log, você deve usarlogger.debug yourobject.inspect
.fonte
Você também pode usar YAML :: dump shorthand ( y ) no console do Rails:
Se você quiser apenas visualizar alguns conteúdos da string, tente usar raise (por exemplo, em modelos, controladores ou algum outro lugar inacessível). Você obtém o backtrace de graça :)
Eu também realmente encorajo você a experimentar ruby-debug :
É incrivelmente útil!
fonte
Você pode usar
puts some_variable.inspect
. Ou a versão mais curta:p some_variable
. E para uma saída mais bonita, você pode usar a gem awesome_print .fonte
Se você deseja apenas que os dados relevantes sejam exibidos para stdout (a saída do terminal se você estiver executando a partir da linha de comando), você pode usar
p some_object
.fonte
Respostas anteriores são ótimas, mas se você não quiser usar o console (terminal), no Rails você pode imprimir o resultado na View usando o Helper ActionView :: Helpers :: DebugHelper do debug
resultados (no navegador)
fonte
Eu uso isso :)
fonte
Ultimamente estou usando o método awesome_print ,
ap
que funciona no console e também nas visualizações.A saída colorida específica do tipo realmente faz a diferença se você precisa procurar visualmente por objetos
String
ouNumeric
(embora eu tenha que ajustar um pouco minha folha de estilo para obter uma aparência elegante)fonte
Recentemente, tornei-me um fã do PRY , e achei incrível para fazer coisas como inspecionar variáveis, depurar código em execução e inspecionar código externo. Pode ser um pouco exagero como resposta a esta pergunta específica.
fonte