Я пытаюсь получить что-то, где, если кто-то входит в строку, он проверяет это и запускает другую функцию. Моя проблема заключается в том, что он завершает программу вместо запуска другой функции.
Вот мой код:
puts "redirecting to login"
def login()
puts ""
print "Username: "
username = gets.chomp
checkusername()
end
def password()
print "Password: "
passwordconf = gets.chomp
checkpassword()
end
def success()
puts "You're logged in!"
loop { sleep 10 }
end
def checkusername()
if username == name
password()
else
login()
end
end
def checkpassword()
if passwordconf == password
success()
else
login()
end
end
login()
loop { sleep 10 }
Когда логин запущен, и я набираю get для строки, которую я пытаюсь проверить, когда я нажимаю enter для запуска checkusername, программа завершается, даже если она правильная.
Функция входа в систему запускает функцию checkusername, когда я набираю строку и нажимаю ввод. Моя проблема в том, что, как только это происходит, программа завершает свою работу, вместо того, чтобы либо перенаправить обратно на функцию входа в систему или функцию пароля. Я пытаюсь понять, как этого не произойдет.
Ошибка вывода:
Traceback (most recent call last):
2: from blank.rb:41:in `<main>'
1: from blank.rb:16:in `login'
blank.rb:28:in `checkusername': undefined local variable or method `username' for main:Object (NameError)
Я довольно новичок в Ruby, и я потратил довольно много времени, чтобы заставить это работать, но я не в состоянии. Спасибо!