2016-08-02 17 views
0

"name"、 "number"、および "email"というキーを持つ配列内にハッシュを格納しようとしています。私は電子メールをユーザーの姓+数字の最後の3桁+ "@ btvs.com"にします。私はnumberに "未定義のローカル変数またはメソッド"というエラーが出ています。これを正しく出力するにはどうすればよいですか? "name"から値を取得するのに問題はありませんが、 "number"から値を取得することはありません。Ruby:未定義のローカル変数またはメソッド

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

を試してみてください。なぜ、数字のために同じことをしないのですか? –

+0

@JonnyHenly申し訳ありませんが、私はこれに少し慣れています。私は何に番号を設定する必要がありますか? – morrime

+0

'number = rand(1000..9000)+1 ' –

答えて

1

あなたは、配列/ハッシュの初期化を開始する前にNAME`が設定されている `ためだ

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

あなたは大歓迎です:) – Ursus

+0

なぜnumber.to_s [1..3]を' number.to_s [-3、3] 'に変更しましたか? –

+1

彼は数の最後の3桁を言ったので。 – Ursus

関連する問題