Heroku mongo_mapper MONGOHQ_URL由ruby uri无法解析

时间:2015-02-05 20:04:37

标签: ruby-on-rails-3 mongodb heroku mongomapper

我在没有找到适当解决方案的情况下搜索了互联网,所以我在这里向SO社区寻求帮助。

我正在将Heroku Bamboo的rails 2应用程序迁移到Cedar。同时,我正在转向rails 3和ruby 2.0.0(尽管我在ruby 1.9.3中也遇到了这个错误)。

似乎MongoMapper已经从0.8.6发生了一些变化,到了我不再使用旧的初始化程序的程度了。我正在尝试使用mongo_mapper的最新0.13.1版本。

根据https://devcenter.heroku.com/articles/mongohq,我只需将config/mongo.yml设置为:

production:
  uri: <%= ENV['MONGOHQ_URL'] %>

我已经完成了设置(我还注释掉了旧的初始化代码)。但是,它因以下连接错误而失败:

  

Feb 05 11:18:28 my-app-name app / web.1:/app/vendor/ruby-2.0.0/lib/ruby/2.0.0/uri/generic.rb:214:in`初始化':方案mongodb不接受注册表部分:heroku:2QMdYzo6z5nmJJsmWAWKd_205umc05tBuP2ZodGaNDZ7N5rE4ns09jhsfFBjmkQ2ls_rfTiVC0lD24Y2byDXbg@candidate.21.mongolayer.com:10499, candidate.4.mongolayer.com:10625(或错误的主机名?)(URI :: InvalidURIError)

无效的URI是可以理解的,但这是由Heroku提供给我的。为了让uri解析器接受它,我缺少什么?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

答案在于uri中存在逗号(,)。当我删除第二个主机和逗号时,它的行为正确: - )

具体来说,我创建了一个名为MONGOHQ_URL2的Heroku ENV变量而没有第二个主机名,然后更新了我的config/mongo.yml以使用该变量。