0

我在 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

我遇到的问题是,当在第二个代码块中建立连接时,该函数尝试将节点与 value 连接起来{"nodeid"=>xxxxx},即使我已将哈希中的所有哈希值复制到第一个代码块中的数组中由第二块处理。有什么建议么?

4

1 回答 1

1

在第一种方法中,您错过了

return resultarray

在 else 分支中,或者它只会返回result哈希,因为它是方法中评估的最后一个东西

于 2012-04-06T09:49:21.410 回答