2012-04-06 86 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