即使在mongoid.yml中指定了不同的地址,Mongoid也会在27017连接到localhost

时间:2012-01-01 11:53:05

标签: ruby-on-rails ruby-on-rails-3 mongoid yaml

我正在EC2上运行rails应用程序,我正在使用mongoHQ作为DBMS。我在mongoid.yml中指定了以下值

defaults: &defaults
host: staff.mongohq.com
port: 10082
username: CodeMaster123
password: 00000000

development:
<<: *defaults
database: app-development

test:
<<: *defaults
database: app-box-test

但是当我执行rails s时,它会抛出错误

/home/ubuntu/.rvm/gems/ruby-1.9.2-p290/gems/mongo-1.4.0/lib/mongo/connection.rb:
526:in `connect': Failed to connect to a master node at localhost:27017(Mongo::ConnectionFailure)

有没有办法检查mongoid是否在阅读mongoid.yml?

编辑:

如果我使用错误的端口号,则显示错误

Failed to connect to a master node at spd.mongohq.com:10092 (Mongo::ConnectionFailure)

这意味着它忽略了mongoid.yml中指定的连接选项并连接到localhost:27017。为什么会这样?

3 个答案:

答案 0 :(得分:1)

您能否尝试编写开发中的完整选项:在yaml文件中而不是使用指针?我相信这个部门存在漏洞。

答案 1 :(得分:1)

Mongoid似乎不支持在当前的公共版本(2.3.4)中正确加载YAML。您可以查看此提交以获取更多详细信息: Refactor options and env into their own modules

将以下内容放入您的Gemfile中,以便从最近的提交中获益(对我来说,在Sinatra下):

gem 'mongoid', :git => "https://github.com/mongoid/mongoid.git"

答案 2 :(得分:0)

有两个文件指定了DBMS详细信息,我编辑了它们,我的应用程序运行正常。