我在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}
连接节点,即使我已将哈希值中的所有哈希值复制到第一个代码块中的数组,用于由第二个块处理。有什么建议吗?
答案 0 :(得分:1)
在第一种方法中你错过了
return resultarray
<\ n>在else分支中,或者只返回result
哈希,因为它是方法中评估的最后一件事