Это только для моего проекта / учебы на выходных, я очень новичок в Синатре и MongoDB.
Я установил гемы для mongoDB, такие как: mongo, mongo_mapper и mongoid.
Когда я пытался подключиться к своей базе данных в MongoHQ с локального хоста, он обнаружил такую ошибку:
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
К сожалению, это может привести к ошибке подключения, честно, я не знаю, почему ...