Cuando ejecuto la consola de Rails, ¿cómo se puede mostrar cada elemento en su propia línea? En lugar de

> Post.all
=> #<ActiveRecord::Relation [#<Post id: 1, title: "Post #0", comment: nil, link: "http://yahoo.com", user_id: 1, created_at: "2013-09-30 02:29:28", updated_at: "2013-09-30 02:29:28">, #<Post id: 2, title: "Post #1", comment: nil,...

podría mostrar como

> Post.all
=> #<ActiveRecord::Relation [
#<Post id: 1, title: "Post #0", comment: nil, link: "http://yahoo.com", user_id: 1, created_at: "2013-09-30 02:29:28", updated_at: "2013-09-30 02:29:28">, 
#<Post id: 2, title: "Post #1", comment: nil,...

Similar a x en Perl depurador. Traté de

Post.todos.cada{|e| e.inspeccionar + «\n»}

Pero que sólo lo hizo peor, y no era muy conveniente.

Vi Ruby on Rails: bastante de impresión variable.hash_set.inspeccionar … hay una manera bonita de impresión .inpsect en la consola? y https://github.com/michaeldv/awesome_print

pero que no parece funcionar

irb(main):005:0> require "awesome_print"
=> false
irb(main):006:0> ap Post.all
#<ActiveRecord::Relation [#<Post id: 1, title: "Post #0",
Tenga en cuenta que Post.all no devuelve un array, pero un ActiveRecord::Relation. Para un verdadero Array necesita #to_a.

OriginalEl autor Chloe | 2013-12-24

2 Comentarios

  1. 14

    Tratar:

    Post.all.each {|e| puts e.inspect }

    Cosa que hay que notar aquí es que puts función agrega automáticamente un carácter de nueva línea después de la instrucción, y si, en lugar de utilizar print funcionará de una manera similar a como puts sin el carácter de nueva línea al final.


    Si usted está usando awesome_print, trate de:

    ap Post.all.to_a

    Además, cuando se emite el primer comando, el resultado se repite al final (como por tu comentario) para mostrar la salida de la corriente de expresión. Usted puede suprimir por anexando un ; (punto y coma) al final del comando, como este:

    Post.all.each { |e| puts e.inspect };
    Esto funciona, pero se repite al final, sin saltos de línea todo de una sola línea. Esto es lo que parece: pastie.org/private/zy88frmnslbtpkvfowupxq
    Gracias, ap Post.all.to_a trabajado! Con los colores de la no menos!
    actualizada la respuesta.
    El punto y coma truco no funciona con Rails 4. Parece ignorar toda la instrucción. Pero esto funciona: Post.all.each { |e| puts e.inspect };1 que imprime un 1 al final.
    debería funcionar. El semi-colon suprimir la salida de la expresión completa/comando. Por lo tanto, si el comando de forma explícita impresiones de algo que va a ser impresa, incluso con el <kbd>;</kbd>. Pruebe a ejecutar: puts "help" vs puts "help"; en su consola.

    OriginalEl autor Stoic

  2. 4

    Tratar:

    > puts Post.all.map(&:inspect).join("\n")

    OriginalEl autor vee

Dejar respuesta

Please enter your comment!
Please enter your name here