Ich versuche eine App mit Sinatra, Ruby, Rack, Haml, Pony und SendGrid zu erstellen, mit Git und RVM für den Einsatz auf Heroku. Die App ist eine Blog-Variante, die eine E-Mail mit Kommentar auf einem Formular senden sollte. Auf meinem lokalen Server, wenn das Formular abschickt ich die folgende Fehlermeldung erhalten:Rack/Sinatra LoadError: kann keine solche Datei laden
LoadError at/
cannot load such file -- pony
file: tools.rb location: require line: 314
BACKTRACE
(expand)
/Users/Kevin/prog/ruby/Sinatra/Noobs/noobs.rb in block in <top (required)>
require 'pony'
Wenn läuft auf Heroku, Form submittal Ergebnisse in einem internen Serverfehler. Die ‚kann nicht geladen werden solche Datei‘ schlägt vor, Fehler, dass die Datei nicht auf dem Edelstein-Pfad ist, aber wenn ich das richtig verstehe, das OS nicht einverstanden ist:
➜ noobs git:(master) ✗ bundle show pony
/Users/Kevin/.rvm/gems/[email protected]/gems/pony-1.4
➜ noobs git:(master) echo $GEM_PATH
/Users/Kevin/.rvm/gems/[email protected]:/Users/Kevin/.rvm/gems/[email protected]
Hier ist der Code, wo Pony erforderlich ist (noobs.rb):
require 'rubygems'
require 'sinatra'
require 'haml'
require "sinatra/reloader" if development?
# ...
post '/' do
require 'pony'
Pony.mail(:from => params[:name] + "<" + params[:contact] + ">",
Was muss ich tun, um Pony zur Arbeit zu bringen?
Aus Neugier, warum würden Sie Pony nur benötigen, wenn das Formular veröffentlicht wird? Warum brauchen Sie es nicht einmal beim App-Start? (Ich benutze weder Bundler noch Heroku und kann Sie daher auch nicht darüber beraten, was mit Ihrer Gem-Installation und/oder -Bibliothek nicht in Ordnung ist.) – Phrogz
Beachten Sie auch, dass Sie unter "Ruby 1.9" nicht "benötigen" müssen Rubin Edelsteine Es ist Teil der Installation. Haben Sie versucht, nur 'Require'-Pony'' vor' Require'-Sinatra' in der einfachsten App zu setzen? – Phrogz
Danke, Phrogz. Ich benötigte ursprünglich Pony an der Spitze mit den anderen benötigt, und bewegte es, um ein Beispiel, das ich gesehen hatte, zu entsprechen. Wenn Sie es später anfordern, kann die App ausgeführt werden, bis der Post aufgerufen wird. Die Anforderung "Ruby Gems" war ein Überbleibsel von dem Versuch, den Edelstein manuell dem Ladepfad hinzuzufügen, was ich möglicherweise nicht richtig gemacht habe. Ich hätte es löschen sollen. Ich versuche eine noch einfachere App zu erstellen, die mit Pony beginnt und noch nicht explodiert ist, also wird das vielleicht Früchte tragen. Ich werde die Ergebnisse veröffentlichen. –