Ich möchte, dass so etwas schön aussieht:
>> ProductColor.all
=> [#<ProductColor id: 1, name: "White", internal_name: "White", created_at: "2009-06-10 04:02:44", updated_at: "2009-06-10 04:02:44">, #<ProductColor id: 2, name: "Ivory", internal_name: "Ivory", created_at: "2009-06-10 04:02:44", updated_at: "2009-06-10 04:02:44">, #<ProductColor id: 3, name: "Blue", internal_name: "Light Blue", created_at: "2009-06-10 04:02:44", updated_at: "2009-06-10 04:02:44">, #<ProductColor id: 4, name: "Green", internal_name: "Green", created_at: "2009-06-10 04:02:44", updated_at: "2009-06-10 04:02:44">]
Das funktioniert nicht:
>> ProductColor.all.inspect
=> "[#<ProductColor id: 1, name: \"White\", internal_name: \"White\", created_at: \"2009-06-10 04:02:44\", updated_at: \"2009-06-10 04:02:44\">, #<ProductColor id: 2, name: \"Ivory\", internal_name: \"Ivory\", created_at: \"2009-06-10 04:02:44\", updated_at: \"2009-06-10 04:02:44\">, #<ProductColor id: 3, name: \"Blue\", internal_name: \"Light Blue\", created_at: \"2009-06-10 04:02:44\", updated_at: \"2009-06-10 04:02:44\">, #<ProductColor id: 4, name: \"Green\", internal_name: \"Green\", created_at: \"2009-06-10 04:02:44\", updated_at: \"2009-06-10 04:02:44\">]"
Und das auch nicht:
>> ProductColor.all.to_yaml
=> "--- \n- !ruby/object:ProductColor \n attributes: \n name: White\n created_at: 2009-06-10 04:02:44\n updated_at: 2009-06-10 04:02:44\n id: \"1\"\n internal_name: White\n attributes_cache: {}\n\n- !ruby/object:ProductColor \n attributes: \n name: Ivory\n created_at: 2009-06-10 04:02:44\n updated_at: 2009-06-10 04:02:44\n id: \"2\"\n internal_name: Ivory\n attributes_cache: {}\n\n- !ruby/object:ProductColor \n attributes: \n name: Blue\n created_at: 2009-06-10 04:02:44\n updated_at: 2009-06-10 04:02:44\n id: \"3\"\n internal_name: Light Blue\n attributes_cache: {}\n\n- !ruby/object:ProductColor \n attributes: \n name: Green\n created_at: 2009-06-10 04:02:44\n updated_at: 2009-06-10 04:02:44\n id: \"4\"\n internal_name: Green\n attributes_cache: {}\n\n"
Gedanken?
ruby-on-rails
irb
Tom Lehman
quelle
quelle
YAML::ENGINE.yamler = 'syck'
..irbrc
, andere Konsolentools oder andere Konfigurationen der Konsole haben (z. B. als Vertragsentwickler mit eingeschränktem Zugriff auf einen Produktionscontainer / -server) )Sie sollten Hirb versuchen . Es ist ein Juwel, um Objekte in der Ruby-Konsole hübsch zu formatieren. Ihre Skript- / Konsolensitzung würde folgendermaßen aussehen:
Mehr über hirb erfahren Sie auf seiner Homepage .
quelle
Fantastischer Druck ist auch schön, wenn Sie ein Objekt eingerückt haben möchten. Etwas wie:
Um es standardmäßig in Ihre irb / Rails / Pry-Konsole zu integrieren, fügen Sie es zu Ihrer
~/.irbrc
oder~/.pryrc
-Datei hinzu:quelle
Funktioniert einfach gut!
Quelle: https://stackoverflow.com/a/4830096
quelle
Es kann auch angemerkt werden, dass Sie Folgendes verwenden können:
Ausgabe im Json-Format anstelle von Yaml
quelle
Hallo, Sie können dies auch in Ihrem Skript / Ihrer Konsole versuchen, wenn
nicht für dich arbeiten.
Versuche dies:
dann
quelle
Ich hatte einige Probleme damit es funktioniert, also werde ich meine zwei Cent zu awesome_print hinzufügen und dies zu deiner Gemfile hinzufügen, vorzugsweise in
:development
gem 'awesome_print', require: 'ap'
dann in
rails console
du kannst tun
> ap Model.all
Das ist es. Sie können jedoch auch hinzufügenFür Ihr ~ / .irbrc ist awesome_print jedes Mal erforderlich, wenn Sie die Konsole öffnen und dies einfach tun können
Model.all ohne die Notwendigkeit, ap einzugeben
quelle
Sie können auch Folgendes für eine Gruppe von Objekten versuchen
Dies gibt Ihnen viel schönere Ausgabe, wie
Wenn Sie
to_yaml
Attribute anstelle des Objekts selbst aufrufen, können Sie nicht den gesamten Inhalt des Objekts in der Ausgabe anzeigenOder
puts Object.last.attributes.to_yaml
für ein einzelnes ObjektKurzschrift ist auch verfügbar:
y Object.last.attributes
quelle
Ich denke, diese Lösung ist die genaueste. Sie sollten dies versuchen:
Dies gibt Ihnen eine super schöne Ausgabe im Vergleich zum YAML-Format:
quelle
Verwenden Sie
irbtools
Edelstein.Die Konsolenausgabe wird automatisch formatiert, und Sie erhalten unzählige großartige Funktionen.
quelle
Möglicherweise möchten Sie die Inspect-Methode von ProductColor definieren, um etwas zurückzugeben, das Ihnen gefällt. Beispielsweise:
Danach wird das Ergebnis von ProductColor.all wie folgt angezeigt: [<1 - Weiß (Weiß)>, ...]. Natürlich sollten Sie die Inspektionsmethode an Ihre Bedürfnisse anpassen, damit alle benötigten Informationen in einem von Ihnen gewünschten Stil angezeigt werden.
Bearbeiten: Auch wenn das Problem das Fehlen von Zeilenumbrüchen in der Ausgabe war, können Sie es versuchen
die gegebenenfalls Zeilenumbrüche einfügen sollten
quelle
require 'pp'
ist in nicht möglichrails console --sandbox
. Aus irgendeinem Grund bekomme ich,false
wenn ich versuche zu verlangenpp
. Hoppla! es scheint, dass diespp
bereits standardmäßig in erforderlich istrails console
. Ich habe es gerade getanpp Model.connection_handler
und eine große, hübsche Druckausgabe bekommen. Vielen Dank.require
zurückgegebenfalse
wird, bedeutet dies nur, dass die Datei bereits geladen wurde.inspect
gerade nicht angezeigtProductColor.all
?Um den Vorschlag von Alter Lago für die Verwendung von AwesomePrint zu ergänzen, gehen Sie folgendermaßen vor, wenn Sie den Edelstein awesome_print nicht zum Gemfile Ihres Projekts hinzufügen können / sollten / wollen:
gem install awesome_print
Bearbeiten Sie ~ / .irb.rc und fügen Sie Folgendes hinzu:
$LOAD_PATH << '/Users/your-user/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/awesome_print-1.1.0/lib'
require 'awesome_print'
(Stellen Sie sicher, dass der Pfad und die Version korrekt sind.)
quelle