如何在 Ruby(不是 Rails)中将变量调用到方法

How do I call a variable to a method in Ruby (NOT Rails)

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

所以有人在我的方法之外 "add",我得到一个错误 "undefined local variable or method `people' for main: Object (NameError)"

people[name].nil 时我收到错误提示?线来了。

我必须创建一个数据库,我有更多方法,如更新和删除,我如何在这些方法中使用/调用 "people"?

全局变量在Ruby中应该有$前缀,所以你需要$people代替people。或者,您可以将 people 传递给 add 函数。

正如 theTinMan 所指出的,正确的解决方案是通过将 people 传递给您的函数来重构您的代码,从而首先避免使用全局变量:

def add(people)
    ...