2014-03-03 56 views
1

我可以很好地連接到本地MongoDB,但是當我嘗試使用Ruby Mongoid連接到MongoHQ或DotCloud實例時,則出現上述錯誤消息。Mongoid Moped無法解析IP地址...遠程MongoDB

我使用Ruby 1.9.3和Moped 1.5.2。

我可以使用MongoHub Mac客戶端連接到MongoHQ和DotCloud數據庫。

我使用IRB做調試以下嘗試:

> require 'Mongoid' 
> class Page 
> include Mongoid::Document 
> field :title, type: String 
> end 

> Mongoid.sessions = {default: {hosts: ["mongodb://<username>:<password>@troup.mongohq.com:10067"], database: "test"}} 

> hello = Page.new 
> hello.title = "Try this." 
> hello.save 

這將導致「無法解析IP ......」的錯誤消息。

你知道我錯過了什麼嗎?或者有關調試此問題的任何提示?

感謝

回答

1

改變這一行

Mongoid.sessions = {default: {hosts: ["mongodb://<username>:<password>@troup.mongohq.com:10067"], database: "test"}} 

並在下面給出

Mongoid.sessions = {default: {uri: ["mongodb://<username>:<password>@troup.mongohq.com:10067/test"]}} 

您的用戶名和密碼,如果你要的主機,在URI的主機是troup.mongohq.com:10067端口是10067 ,數據庫測試和身份驗證用戶名和密碼...

+0

謝謝 - 他LPED!我發現我必須刪除封閉的數組括號「[...]」,然後在我的本地環境中工作。 – user2748791

+0

因此,似乎有三件事導致相關錯誤:1)我應該使用uri設置而不是主機 - 如abhas所示。 2)我需要確保我傳遞了一個用戶,該用戶被分配到了我試圖訪問的數據庫。我知道愚蠢,但我只是試圖使用DotCloud爲我創建的默認root用戶。 3)DotCloud默認爲ruby 1.9.2,但Moped/Mongoid需要1.9.3才能正常工作。一旦我在我的dotcloud.yml文件中更新了這個文件並推送出去,它就可以工作了。 – user2748791