2016-09-14 3 views
-1
people = {} 

def add 

    puts "Enter the name of the person you would like to add in the database." 
    name = gets.chomp.to_s 

    if people[name].nil? 

     puts "What is #{name}'s age?" 
     age = gets.chomp.to_i 

     people[name] = age.to_i 
end 

puts "Would you like to add?" 
choice = gets.chomp 

if choice == "yes" 
     add 
end 

end 

Так Ive есть люди вне мой метода «добавить», я получаю ошибку «неопределенный локальный переменные или метод` людей»для основных: Object (NameError) "Как вызвать переменный метод в Ruby (НЕ Rails)

Я получаю сообщение об ошибке в ближайшее время, когда люди [имя] .nil? линия приходит.

Я должен создать базу данных, у меня есть больше методов, таких как обновление и удаление, как мне использовать/называть «людей» внутри этих методов?

+3

I» d настоятельно рекомендую вам правильно отложить свой код. Это спасет ваше будущее от ярости. –

ответ

-1

Глобальные переменные должны иметь префикс $ в Ruby, поэтому вам необходимо $people вместо people. Кроме того, вы можете перейти в people к функции вашего add.

Как отметил theTinMan, правильное решение реорганизовать свой код таким образом, чтобы избежать использования глобальных переменных, в первую очередь, путем передачи в people вашей функции:

def add(people) 
    ... 
+0

Просто попробовал это, все еще получая такую ​​же точную ошибку. – user3602045

+0

'add ': неопределенная локальная переменная или метод' people' для main: Object (NameError) – user3602045

+0

Вы заменяли каждый экземпляр 'people'' $ people'? – kfb

Смежные вопросы