2016-08-02 19 views
0

Ich versuche, einen Hash innerhalb eines Arrays mit den Schlüsseln "Name", "Nummer" und "E-Mail" zu speichern. Ich möchte, dass die E-Mail der Nachname eines Benutzers ist + die letzten 3 Ziffern der Nummer + "@ btvs.com". Ich bekomme den Fehler "undefinierte lokale Variable oder Methode" für die Nummer. Wie kann ich das korrekt ausgeben? Es hat kein Problem, den Wert von "Name" zu greifen, wird aber nicht von "Nummer". VersuchenRuby: Undefinierte lokale Variable oder Methode

data = Array.new() 

puts "Name?, eg. Willow Rosenberg" 
name = gets.chomp 

    data = [ 
     { 
     name: name, 
     number: rand(1000..9000) + 1, 
     email: name.split(' ').last + number.to_s[1..3] + "@btvs.com" 
     } 
    ] 

puts data 
+0

Das ist, weil 'name' eingestellt ist, bevor Sie das Array/Hash-Start initialisiert. Warum nicht dasselbe für "Nummer" tun? –

+0

@JonnyHenly Entschuldigung, ich bin ein bisschen neu dazu. Womit sollte ich die Nummer einstellen? – morrime

+0

'Zahl = Rand (1000..9000) + 1' –

Antwort

1

puts "Name?, eg. Willow Rosenberg" 
name = gets.chomp 
number = rand(1000..9000) + 1 
data = [ 
    { 
    name: name, 
    number: number, 
    email: name.split(' ').last + number.to_s[-3, 3] + "@btvs.com" 
    } 
] 
puts data 
+0

Gern geschehen :) – Ursus

+0

Warum haben Sie' number.to_s [1..3] 'in' number.to_s [-3, 3] 'geändert? –

+1

Weil er die letzten drei Ziffern der Nummer gesagt hat. – Ursus

Verwandte Themen