Ruby散列返回不正确的值

时间:2012-04-06 09:29:58

标签: mysql 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 个答案:

答案 0 :(得分:1)

在第一种方法中你错过了

return resultarray
<\ n>在else分支中,或者只返回result哈希,因为它是方法中评估的最后一件事