Это только для моего проекта / учебы на выходных, я новичок в Sinatra и MongoDB.
Я установил драгоценные камни для mongoDB, такие как: mongo, mongo_mapper и mongoid.
Когда я пытался подключиться к своей базе данных на MongoHQ с localhost, он обнаружил такую ошибку:
Mongo::ConnectionFailure at /
failed to connect to any given host:port
* file: connection.rb
* location: connect
* line: 489
Я нашел похожий поток на SO , но, честно говоря, я не совсем понять ответы ...
Вот мой фрагмент кода:
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
Я взял приведенный выше код из здесь , но похоже, что он не работает ...
Какая часть неправильная? Есть другой способ сделать это? В конце концов, это тестовое веб-приложение будет развернуто на heroku, поэтому я надеюсь, что решение может работать как с localhost, так и с моим сервером heroku.
Обновлено:
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")
Но по-прежнему возникает ошибка после тайм-аута:
$ 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
Имя хоста и порт соответствуют документации mongoHQ, поэтому они должны быть правильными.
Заранее спасибо за помощь.
2-е обновление :
Я только что протестировал строку подключения mongodb с помощью терминала:
mongo mongodb://flame.mongohq.com:27044/notes -u foo -p bar
К сожалению это привело бы к ошибке подключения, если честно, я не знаю почему ...