2011-01-08 14 views
3

Kann mir jemand sagen, was ich falsch mache? Ich versuche, eine einfache Rails-App nach Heroku zu schieben, die MongoDB verwendet. Meine Gemfile enthält die folgende Zeile:Heroku-Einsatz mit Mongo

gem "Mongo"

Wenn die App Heroku drückt seinen Fehler aus mit: keine solche Datei zu laden - Mongo

-----> Heroku receiving push 
-----> Rails app detected 
-----> Detected Rails is not set to serve static_assets 
     Installing rails3_serve_static_assets... done 
-----> Gemfile detected, running Bundler version 1.0.3 
     Unresolved dependencies detected; Installing... 
     /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- mongo (LoadError) 

Hier ist mein ganzes gemfile:

require 'rubygems' 
require 'mongo' 
source 'http://gemcutter.org' 

gem "rails", "3.0.0" 
#gem 'rails', :git => 'http://github.com/rails/rails.git' 

gem "mongo_mapper" 
gem 'mongoid', '2.0.0.beta.20' 
gem 'devise', :git => 'git://github.com/plataformatec/devise.git' 
gem 'heroku', '1.13.7' 


# Bundle edge Rails instead: 
# gem 'rails', :git => 'git://github.com/rails/rails.git' 

Antwort

6

Sie nicht eine dieser Zeilen in Ihrer Gemfile benötigen:

require 'rubygems' 
require 'mongo' 

die Weder für Bündler benötigt, um Ihre Edelsteine ​​zu aktualisieren oder zu installieren.

Außerdem gibt es einen Grund, warum Sie beide mongoid Installationsort und mongo_mapper?

+0

Danke - ich habe ehrlich gesagt keine Ahnung, warum ich beide installiere. First Rails App für mich und ich hatte zwei verschiedene Führer gefolgt, die zeigten, wie man Authentifizierung mit Schienen und die andere, wie man es mit Mongo verbindet. – IEnumerator

+0

BTW - das war ein zweiteiliges Update 1) entfernen Sie die 2 erfordern Linien 2) Gemfile.lock löschen, nach dem ich in der Lage war, die App zu Heroku schieben. – IEnumerator

+1

Du solltest deine Lockdatei nicht löschen müssen, wenn du deine gemfile aktualisierst, führe einfach 'bundle update' durch und das wird die Lockdatei aktualisieren und alle Probleme mit der Edelsteinabhängigkeit beheben. – theTRON

0

Vielleicht ein anderer Ansatz, den Sie verwenden können, ist etwas wie https://mongolab.com, verbinden Sie Ihre Anwendung mit der Datenbank in der Cloud, und dann die Bereitstellung (nur die Rails-Anwendung). Ich habe MongoLabs für eine Weile verwendet und funktioniert ziemlich gut, Sie können Ihre Sammlungen direkt von dort aus überprüfen (Sie müssen nicht die JS-Shell verwenden). Dies ist nur ein Vorschlag, um die Bereitstellung zu erleichtern :)