Je veux que quelque chose comme ça soit beau:
>> 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">]
Cela ne fonctionne pas:
>> 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\">]"
Et cela non plus:
>> 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"
Pensées?
ruby-on-rails
irb
Tom Lehman
la source
la source
YAML::ENGINE.yamler = 'syck'
..irbrc
, à d'autres outils de la console ou à d'autres configurations de la console (comme, être un développeur sous contrat avec un accès limité à un conteneur / serveur de production )Vous devriez essayer hirb . C'est un bijou fait pour mettre en forme de jolis objets dans la console ruby. Votre session de script / console ressemblerait à ceci:
Vous pouvez en savoir plus sur hirb sur sa page d'accueil .
la source
L'impression impressionnante est également agréable si vous voulez un objet en retrait. Quelque chose comme:
Pour l'intégrer par défaut à votre console irb / rails / pry, ajoutez à votre fichier
~/.irbrc
ou~/.pryrc
:la source
Fonctionne simplement bien!
Source: https://stackoverflow.com/a/4830096
la source
On peut également noter que vous pouvez utiliser:
pour sortir au format Json plutôt que Yaml
la source
Salut, vous pouvez également essayer ceci dans votre script / console si
ne fonctionne pas pour vous.
Essaye ça:
puis
la source
J'ai eu du mal à le faire fonctionner alors je vais ajouter mes deux cents à awesome_print et ajouter ceci à votre Gemfile, de préférence dans
:development
gem 'awesome_print', require: 'ap'
puis dans
rails console
tu peux faire
> ap Model.all
C'est tout. Cependant, vous pouvez également ajouterà votre ~ / .irbrc, de cette façon awesome_print sera requis à chaque fois que vous ouvrez la console et vous pouvez simplement faire
Model.all sans avoir besoin de taper ap
la source
Vous pouvez également essayer ce qui suit pour un groupe d'objets
Cela vous donnera une sortie beaucoup plus agréable , comme
Appel
to_yaml
d'attributs plutôt que de l'objet lui-même vous évite d'afficher le contenu complet de l'objet dans la sortieOu
puts Object.last.attributes.to_yaml
pour un seul objetLa sténographie est également disponible:
y Object.last.attributes
la source
Je pense que cette solution est la plus précise. Vous devriez essayer ceci:
Cela vous donnera une sortie super sympa par rapport au format YAML:
la source
Utilisez des
irbtools
gemmes.Il formatera automatiquement la sortie de la console et vous obtiendrez des tonnes de fonctionnalités intéressantes.
la source
Vous voudrez peut-être définir la méthode d'inspection de ProductColor pour renvoyer quelque chose que vous trouvez agréable. Par exemple:
Après quoi le résultat de ProductColor.all s'affichera comme quelque chose comme [<1 - White (White)>, ...]. Bien sûr, vous devez adapter la méthode d'inspection à vos besoins, afin qu'elle affiche toutes les informations dont vous avez besoin dans un style que vous aimez.
Edit: également si le problème était le manque de sauts de ligne dans la sortie, vous pouvez essayer
qui devrait insérer des sauts de ligne le cas échéant
la source
require 'pp'
n'est pas possiblerails console --sandbox
. Pour une raison quelconque, je reçoisfalse
quand j'essaye d'exigerpp
. Oups! il semble que cepp
soit déjà requis par défaut dansrails console
. Je viens de le fairepp Model.connection_handler
et j'ai obtenu une grosse sortie imprimée. Merci.require
retournefalse
, cela signifie simplement que le fichier a déjà été chargé.inspect
ne s'affiche pas lorsque vous faites justeProductColor.all
?Pour ajouter à la suggestion d'Alter Lago d'utiliser AwesomePrint, si vous ne pouvez pas / ne devriez pas / ne voulez pas ajouter le gem awesome_print au Gemfile de votre projet, procédez comme suit:
gem install awesome_print
Modifiez ~ / .irb.rc et ajoutez ceci:
$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'
(S'assurer que le chemin et la version sont corrects, bien sûr)
la source