2013-07-31 13 views
11

Ich bin mit Ruby on Rails 4.Ruby-Fehler: kann nicht solche Datei laden - Rest-Client

ich

require 'rest-client' 

in meinem Controller versuche so, dass ich die Login-Daten analysieren kann ich Ich komme von einem Formular und sende es an eine API.

Ich kann überprüfen, dass der Edelstein installiert ist und ist auch in meinem Gemfile auf der Anwendung root.

Allerdings wirft es immer noch die "kann solche Datei nicht laden - Rest-Client", wenn ich versuche, die Datei in meinem Controller zu verlangen.

Ich habe den Fehler gegoogelt und die meisten der Antworten, die ich sah, waren entweder der Edelstein wurde nicht installiert, war nicht in der Gemfile oder eine Kombination aus beiden. Noch ist die Situation hier.

Kann mein Controller aus irgendeinem Grund nicht auf den Rest-Client-Edelstein zugreifen? Ich muss Rest-Client verwenden, da dies in der API erforderlich ist.

Das ist die Linie, die ich die gem install verwendet:

gem install rest-client 

Dies ist die Homepage des Edelsteins: https://github.com/archiloque/rest-client
die zu https://github.com/rest-client/rest-client

leitet Sie nur sollte ich beachten Sie auch, dass es funktioniert Gut, wenn ich den Code in einem Rails-Projekt nicht benutzte, sondern nur die Befehle im Terminal ausführte.

+0

nach der github Dokumentation Sie ‚rest_cli erfordern zu tun ned ent 'mit einem Unterstrich. – yarakyo

+0

Ich habe diese Änderung mit dem gleichen resultierenden Fehler gemacht. – Jerrod

+0

Es zeigt sich im Bündel. Neustart des Servers hat es getan. Danke Abe. – Jerrod

Antwort

14

Sie verwenden https://github.com/rest-client/rest-clientUnter der Annahme, (da Sie nicht angegeben haben), Ihre require Linie sollte

require 'rest-client' 

nach dem README sein. Stellen Sie außerdem sicher, dass Sie Ihren Rails-Server neu starten, nachdem Sie den Edelstein zu Ihrem Gemfile hinzugefügt und bundle ausgeführt haben.

+1

Dies ist nicht mehr anwendbar – poorva

+0

Nun, es wurde vor fast 3 Jahren veröffentlicht. Fühlen Sie sich frei, eine Änderung vorzuschlagen, wenn Sie eine Änderung haben, um sie relevant zu machen. – deefour

+0

Nun, Sie können nicht eine 1-stellige Bearbeitung :), bitte ändern Sie dies von 'require 'rest_client' zu' require rest-client' – poorva

-1

Versuchen require 'rest_client', statt require 'rest-client'

0

zunächst sicher, Sie gem 'rest-client' installiert haben, ~>1.8.0 auf dem Edelstein-Datei. Run bundle install und dann require 'rest_client'. Das hat für mich funktioniert.

0

Für mich war es ein Problem mit Bundle (die ich dachte, ich hatte installiert). Spoiler Alert, habe ich nicht, und so habe ich es behoben. Ich bin auf einem Mac mit OS X Yosemite und meine Terminalversion ist Darwin Kernel Version 14.3.0:

cd 
gem install bundler 

oder

cd 
sudo gem install bundler 

Wenn Sie etwas entlang der Linien der folgenden Fehlermeldung erhalten:

Fehler: Beim Ausführen Gem ... (Gem :: FilePermissionError) Sie haben keine Schreibberechtigungen für das Verzeichnis /Library/Ruby/Gems/2.0.0.

require 'rest-client' 

zu

require 'rest_client' 

Führen Sie dann Ihren Code:

Schließlich Ihre erfordern Linie von ändern!

3

Führen Sie den folgenden Befehl in das Terminal:

gem install rest-client 

und require 'rest-client' verwenden. Kein Wechsel zu rest_client erforderlich.

1

in meinem Fall keine der Lösungen in diesem Thread gearbeitet
was Arbeit getan hat, das Juwel direkt im Gemfile hinzuzufügen war:

gem 'rest-client' 

nach den rails server Schließen Verlassen rails console und laufen bundle install,
ich öffnete wieder die rails console und diesmal require 'rest-client' funktionierte einwandfrei

Verwandte Themen