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

私が得ている問題は、接続が2番目のコードブロックで確立される{"nodeid"=>xxxxx}と、ハッシュからすべてのハッシュ値を1番目のコードブロックの配列にコピーしたにもかかわらず、関数がノードを値に接続しようとすることです。 2番目のブロックによる処理。助言がありますか?

4

1 に答える 1

1

最初の方法では、

return resultarray

elseブランチで、またはresultメソッドで評価される最後のものであるため、ハッシュを返すだけです

于 2012-04-06T09:49:21.410 に答える