To jest tylko dla mojego weekendowego projektu/badania, jestem bardzo nowy w Sinatrze i MongoDB.Ruby Sinatra - połącz z mongoDB na mongoHQ nie powiodło się
Zainstalowałem klejnoty dla mongoDB, takie jak: mongo, mongo_mapper i mongoid.
Kiedy próbowałem podłączenia do mojej bazy danych na MongoHQ z localhost, że spotkałem takiego błędu:
Mongo::ConnectionFailure at/
failed to connect to any given host:port
* file: connection.rb
* location: connect
* line: 489
znalazłem a similar thread on SO, ale szczerze mówiąc, nie bardzo rozumiem odpowiedź ...
Tu jest mój urywek kodu:
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
wziąłem powyższy kod z here, ale wydaje się nie działa ...
Która część jest nieprawidłowa? Czy jest inny sposób na zrobienie tego? W końcu ta aplikacja testowa zostanie wdrożona na heroku, więc mam nadzieję, że rozwiązanie będzie działać zarówno z serwerem lokalnym, jak i moim serwerem heroku.
Aktualizacja:
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")
Ale wciąż mam ten błąd, po timeout:
$ 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
Nazwa hosta i port są zgodnie z dokumentacją mongoHQ, więc muszą mieć rację.
Dzięki za pomoc z góry.
2-ty Aktualizacja:
Właśnie testowany ciąg połączenia MongoDB użyciu terminala:
mongo mongodb://flame.mongohq.com:27044/notes -u foo -p bar
Niestety byłoby to po mnie połączenie nie powiodło się błąd, szczerze mówiąc, nie wiem dlaczego .. .