2012-04-06 111 views
0

我在ruby中有以下函數用於從數據庫中檢索某些信息。Ruby哈希返回不正確的值

#Setup 

require "mysql2" 
@client = Mysql2::Client.new(:host => "127.0.0.1", :username => "root", :password => "password") 
query = "use project1" 
@client.query(query) 

def nodeslastactive 
    query = "SELECT nodeid FROM nodes WHERE lastactive = #{@clock-1}" 
    result = @client.query(query) 
    if result.size == 0 
    return nil 
    else 
    resultarray = Array.new 
    result.each do |row| 
     resultarray.push(row["nodeid"]) 
    end 
    end 
end 

它是通過這個代碼利用:

lastactivenodes = nodeslastactive 
if lastactivenodes != nil 
    lastactivenodes.each do |lastactivenode| 
    connect(node,lastactivenode) 
    end 
end 

我得到的問題是,當是建立在第二代碼塊的連接,該功能會嘗試將節點與價值{"nodeid"=>xxxxx}連接即使我已經將散列值中的所有散列值複製到第一個代碼塊中的數組中供第二個塊處理。有什麼建議麼?

回答

1

在第一種方法你錯過了

return resultarray 

在else分支,或者它只是返回result哈希值,因爲它是在法評價的最後一件事

+0

不能相信我錯過了。 ...試圖弄清楚這一點已經持續了大約3個小時......有時會顯示一雙新鮮的眼睛是你需要的 - 救命稻草......乾杯guido – marscom 2012-04-06 09:58:21