循环检查用户输入以匹配字符串?

时间:2015-10-25 00:44:27

标签: ruby

def get_input(*options)
  puts "Choose one:"
  options.each do |option|
    puts "#{option}"
  end
  choice = gets.chomp.to_s
  options.each do |option|
    if choice.include?(option.to_s)
    return choice
    end
  end
  puts "Command not found..."
  get_input(options)
end

如果用户输入无效命令,则会再次输出可用命令,但当前值包括[,]。我怎么能避免这种情况。

1 个答案:

答案 0 :(得分:1)

您在get_input的递归调用中错过了一个splat:

  puts "Command not found..."
  get_input(options)
end

应该是:

  puts "Command not found..."
  get_input(*options)
end