Ceci est juste pour mon projet de week-end/étude, je suis très nouveau à Sinatra et MongoDB.Ruby Sinatra - se connecter à mongoDB sur mongoHQ échoué
J'ai installé les gemmes pour mongoDB, telles que: mongo, mongo_mapper et mongoid.
Quand j'ai essayé la connexion à ma base de données sur MongoHQ de localhost, il a rencontré une telle erreur:
Mongo::ConnectionFailure at/
failed to connect to any given host:port
* file: connection.rb
* location: connect
* line: 489
J'ai trouvé a similar thread on SO, mais franchement, je ne comprends pas tout à fait les réponses ...
Voici mon extrait de code:
require 'rubygems'
require 'sinatra'
require 'mongo'
require 'mongo_mapper'
get '/' do
MongoMapper.connection = Mongo::Connection.new('flame.mongohq.com', 27044)
MongoMapper.database = 'notes'
MongoMapper.database.authenticate('foo', 'bar')
erb :list
end
Je pris le code ci-dessus de here, mais il semble ne fonctionne pas ...
Quelle est la pièce défectueuse? Y a-t-il une autre façon de faire cela? À la fin, cette application web de test sera déployée sur heroku, donc j'espère que la solution peut fonctionner à la fois avec localhost et mon serveur heroku.
Mise à jour:
I just created a minimal code snippet to test the mongodb connection:
require 'rubygems'
require 'mongo'
db = Mongo::Connection.new("flame.mongohq.com", 27044).db("notes")
Mais encore obtenu l'erreur, après le délai:
$ ruby mongodbtest.rb
/Library/Ruby/Gems/1.8/gems/mongo-1.0.8/lib/../lib/mongo/connection.rb:489:in
`connect': failed to connect to any given host:port (Mongo::ConnectionFailure)
from /Library/Ruby/Gems/1.8/gems/mongo-1.0.8/lib/../lib/mongo/connection.rb:137:in
`initialize'
from mongodbtest.rb:4:in `new'
from mongodbtest.rb:4
Le nom d'hôte et le port sont selon la documentation mongoHQ, donc ils doivent avoir raison.
Merci pour l'aide à l'avance.
2ème mise à jour:
Je viens de tester la chaîne de connexion MongoDB en utilisant la borne:
mongo mongodb://flame.mongohq.com:27044/notes -u foo -p bar
Malheureusement, ce serait me faire une erreur connexion a échoué, honnêtement, je ne sais pas pourquoi .. .