2013-02-22 10 views
15

awesome_print sieht aus wie ein hübsches schönes Juwel, also wollte ich es ausprobieren.Kann nicht genial_print Juwel zu arbeiten

ich zu einem meiner Projekte gingen hin und taten:

gem install awesome_print 

und es sagt, ein Juwel installiert, die Dokumentation installiert usw.

Dann, während ich in diesem Projekt bin, ging ich zu meinem Rails Konsole, um es auszuprobieren, aber wenn ich eine require "awesome_print" als ihre Hilfedatei sagt, bekomme ich eine "kann solche Datei nicht laden".

Hat jemand das funktioniert?

+5

Sie hinzufügen müssen es zu deinem Gemfile – jvnill

+1

, also "das Hinzufügen zur Edelsteindatei" wird noch benötigt, obwohl wir eine Edelsteininstallation tun? –

+0

gearbeitet! Vielen Dank. –

Antwort

18

gem install wird den gem-Code auf Ihrem Computer, aber wenn die Source-Code-Dateien des Edelsteins sind auf Ihrem Ladepfad, require wird nicht in der Lage, sie zu finden. bundle exec schaut auf den nächsten Gemfile.lock und fügt den Quellcode für alle dort aufgelisteten Edelsteine ​​Ihrem Ladepfad hinzu. Die Rails-Initialisierung beinhaltet, dass Bundler dies für Sie erledigt.

Eine Lösung besteht darin, awesome_print zu Ihrer Gemfile hinzuzufügen. Dies führt jedoch dazu, dass Ihre Anwendung awesome_print als Abhängigkeit hat. Alternativ können Sie manuell die awesome_print Library auf den Lastpfad hinzufügen, nachdem die Rails-Konsole starten und es dann erforderlich:

$ rails c 
> $LOAD_PATH << path/to/awesome_print-x.x.x/lib 
> require 'awesome_print' 
> ap {foo: {bar: {baz: :qux}}} 

Wenn Sie RVM verwenden, ist der Weg wahrscheinlich so etwas wie

~/.rvm/rubies/[email protected]_gemset_name/gems/awesome_print-x.x.x/lib 
sein
+0

awesome_print funktioniert nicht, wenn Sie 'C: \> app' oder' C: \> app.request', 'C: \> app.response' und andere verwenden. Es hat keinen Einfluss auf Methodenaufrufe. – Green

+0

Ich habe absolut awesome_print in meinem Gemfile und es installiert gut, aber ich bekomme den gleichen Fehler wie das Original-OP, wenn ich versuche, es in einer Datei zu verlangen. –

22

Fügen sie es zu Ihrem Gemfile wie folgen aus:

gem 'awesome_print', :require => 'ap' 

ich sich um die Entwicklung Gruppe hinzuzufügen, da dies die einzige Zeit ist, ich es brauche. Der Edelstein hat keine anderen Juwel-Abhängigkeiten, also füge ich ihn routinemäßig meiner Gemdatei hinzu.

Auch fügen Sie diese beiden Zeilen in Ihre ~/.irbrc Datei ap zu setzen Ihren Standard-Pager zu sein:

require "awesome_print" 
AwesomePrint.irb! 

Beachten Sie, dass, wenn Sie diese verwenden jedoch alle Projekte, bei denen awesome_print nicht installiert ist seine Gemfile diesen Fehler erhöhen, wenn Sie rails c laufen:

cannot load such file -- awesome_print 

Je nachdem, was Sie sonst in Ihrer ~/.irbrc Datei haben, kann dies andere Nebenwirkungen haben, wie Ihre prompte vermasselt. Um dies zu vermeiden, fügen Sie einfach die zwei Zeilen am Ende dieser Datei hinzu.

6

es installieren:

$ gem install awesome_print 

sind es in Ihnen GemFile, wenn Sie wollen:

gem 'awesome_print', :require => 'ap' 

die folgende Zeile in der Datei ~/.irbrc:

require 'awesome_print' 
AwesomePrint.irb! 

Neustart deine Schale!

nur ein Hinweis: Ich tat dies und es hat nicht sofort funktioniert, wahrscheinlich müssen Sie den Computer neu starten ... oder ich brauchte nur alle Shell-Tabs zu schließen und das Terminal wieder zu öffnen!

1

Wenn Sie schauen, um es zu installieren, ohne sie in Ihrem Gemfile hat, ist dies, wie es geht:

$ gem install awesome_print 

Ich wurde in ein Problem laufen, wo es erfolgreich war die Installation aber nicht im richtigen Verzeichnis .

In diesem Fall stellen diese nur in .bashrc, wird dies den Lastpfad festgelegt:

export PATH="/home/user/.gem/ruby/2.3.0/bin:$PATH" 
PATH="`ruby -e 'puts Gem.user_dir'`/bin:$PATH" 

ersetzen 2.3.0 mit der Version von Rubin mit dem Sie arbeiten.
ersetzen Benutzer mit Ihrem Benutzernamen oder wenn Sie mit vagrant

laden Sie Ihre .bashrc oder verlassen Sie den Terminal-Vagabund dann ersetzen verwenden, um Änderungen zu laden, dann die gem install wieder.

-1

Eine Sache, die für mich gearbeitet wurde nach 'require 'awesome_print' Eingabe ap Befehl' 'würde ich setzen',

Zum Beispiel:

ap Event.all