これは私の週末のプロジェクト/研究のためだけのものです。私は Sinatra と MongoDB に非常に慣れていません。
mongo、mongo_mapper、mongoid などの mongoDB 用の gem をインストールしました。
localhost から 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
上記のコードはhereから取得しましたが、機能していないようです...
どの部分が間違っていますか?これを行う別の方法はありますか?最終的に、このテスト Web アプリは 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
残念ながら、これにより接続失敗エラーが発生します。正直なところ、理由はわかりません...