那是因为您没有返回递归调用返回的值ask_question.
def ask_question(question)
print question
answer = STDIN.gets.chomp
answer = ask_question question if answer.empty?
return answer;
end
Run Code Online (Sandbox Code Playgroud)
您所做的就是在方法完成时返回第一个用户输入值(在您的情况下为空字符串).