紅寶石noob在這裏。任何幫助我遇到的一個小問題將不勝感激。 我想將一個數組放入格式爲數組的連接字符串參數。方法調用中的紅寶石變量替換
我的陣列如下:
hosts = ["192.168.0.2:27017","192.168.0.3:27017"]
我需要拉開陣列和結構像一個數組,這樣我可以替代所有的連接到呼叫一次。主機的數量可能會有所不同,所以爲什麼它是一個數組。
hosts_mapped = hosts.map { |i| "'" + i.to_s + "'" }.join(",")
給我「192.168.0.2:27017","192.168.0.3:27017」作爲一個字符串我想......或者這可能映射回一個數組,因爲我得到它看起來像一個錯誤下面的一個嘗試啓動連接後。
@conn = Mongo::ReplSetConnection.new([hosts_mapped], :refresh_mode => :sync, :refresh_interval => 10)
Exception `Mongo::ConnectionFailure' at gems/mongo-1.7.0/lib/mongo/util/pool_manager.rb:282 - Cannot connect to a replica set using seeds '192.168.0.2:27017
Mongo::ConnectionFailure: Cannot connect to a replica set using seeds '192.168.0.2:27017
正如你可以看到它似乎只引用第一個條目。我需要在配置文件中保存這個數組,所以這就是它不直接進入上面的連接字符串的原因。 對我來說,似乎我已經將hosts_mapped映射回數組,但是如果我放入hosts_mapped,我會以正確的格式獲取字符串。
"192.168.0.2:27017","192.168.0.3:27017"
有效的連接字符串看起來像:
@conn = Mongo::ReplSetConnection.new(["192.168.0.2:27017","192.168.0.3:27017"], :refresh_mode => :sync, :refresh_interval => 10)
有沒有人有任何想法,我錯了嗎?
的完整代碼進行測試:
#!/usr/bin/ruby -d
require "mongo"
hosts = ["192.168.0.2:27017","192.168.0.3:27017"]
hosts_mapped = hosts.map {|i| "'" + i.to_s + "'" }.join(",") @conn =
Mongo::ReplSetConnection.new([hosts_mapped], :refresh_mode => :sync,:refresh_interval => 10)
您15秒打我! – saihgala
嗨Stefan,謝謝你的回覆。作品!我以前曾嘗試過使用這種格式進行替換。當我遇到錯誤時,我繼續前進。我看了一下我的配置文件,並且對數組進行了錯誤操作,所以爲什麼我得到一個錯誤。我當時專注於其他方法以使其工作。感謝你及時的答覆。注意自我:總是檢查你的配置文件。 –