我使用的Watir和Ruby,試圖從Web應用程序發出聲音數據的加載到一個哈希:使用Ruby時遇到哈希
def getOrders()
return orders = slurpOrders()
end
def containsOrderNumber(orderNumber)
puts orderNumber
orders = getOrders
puts orders[orderNumber]
#puts orders.keys
puts "orders has_key? = " + orders.has_key?(orderNumber).to_s
return orders.has_key?(orderNumber)
end
private
def slurpOrders()
puts @browser.tables[6].row_count
rows = @browser.tables[6].rows
orders = Hash.new
for row in rows do
#puts row.column_count
if row.column_count == 8 then
order = {
:sales_channel => row[2],
:customer => row[3],
:country => row[4],
:total => row[5],
:time => row[6],
:highlight => row[7],
:credit_hold => row[8],
}
orders[ row[1] ] = order
#puts row[1]
end
end
return orders
end
所以我呼籲containsOrderNumber(「1136050」)另一個腳本,但orders.has_key?返回false,order [orderNumber]返回nil。
但是,如果我取消註釋放置orders.keys,它顯示爲散列中的一個鍵...?我超級困惑 - 我做錯了什麼?數據類型方面有點奇怪嗎?
乾杯
F%$%$%$ ....是的,我通過將其更改爲行[1] .to_s – 2010-09-17 10:26:21
確定它是否確定散列中的鍵是'1136050'(一個字符串)而不是1136050(一個整數,這會更有意義)。它們顯示的內容與字符串相同。 – mb14 2010-09-17 10:30:16