J'utilise Watir et Ruby pour essayer de slurp une charge de données à partir d'une application Web dans un hachage:avec difficulté à Ruby hash
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
Je vous appelle containsOrderNumber (« 1136050 ») dans un autre script mais des ordres. renvoie false et les commandes [orderNumber] retournent zéro. Cependant, si je ne commente pas puts.keys, il apparaît comme l'une des clés dans le hachage ...? Je suis super confus - qu'est-ce que je fais mal? Est-ce que quelque chose de bizarre se passe dans le type de données?
Vive
F% $% $% $ .... Oui, je l'ai corrigé en le changeant en ligne [1] .to_s –
Etes-vous sûr que la clé dans le hachage est '1136050' (une chaîne) plutôt que 1136050 (un entier, ce qui aurait plus de sens). ils sont affichés la même chose que la chaîne. – mb14