代码学院-电影之夜(ruby)。使用户能够在不区分大小写的情况下查找电影

代码学院-电影之夜(ruby)。使用户能够在不区分大小写的情况下查找电影,ruby,Ruby,我刚刚完成了Ruby CodeAcademy的任务“电影之夜”(代码如下) 在数据库中搜索现有电影时,我希望用户能够输入标题(在本例中仅为StarWars或Divergent),而不必区分大小写?目前,搜索“星球大战”会返回一个错误(与不返回错误的“星球大战”相反) 谢谢 movies = { StarWars: 4.8, Divergent: 4.7 } puts "What would you like to do? " choice = gets.chomp case

我刚刚完成了Ruby CodeAcademy的任务“电影之夜”(代码如下)

在数据库中搜索现有电影时,我希望用户能够输入标题(在本例中仅为StarWars或Divergent),而不必区分大小写?目前,搜索“星球大战”会返回一个错误(与不返回错误的“星球大战”相反)

谢谢

movies = {
  StarWars: 4.8, 
  Divergent: 4.7
  }

puts "What would you like to do? "

choice = gets.chomp

case choice
when "add"
  puts "What movie would you like to add? "
  title = gets.chomp.downcase
  if movies[title.to_sym].nil? 
    puts "What rating does the movie have? "
    rating = gets.chomp
    movies[title.to_sym] = rating.to_i
  else
    puts "That movie already exists! Its rating is #{movies[title.to_sym]}."
  end

when "update"
  puts "Please enter movie title."
  title = gets.chomp.to_sym
  if movies[title].nil?
    puts "This title doesn't exist!"
  else 
    puts "what's the new rating for this movie (0 to 4)"
    rating = gets.chomp
    movies[title.to_sym] = rating.to_i
    puts "#{title} has been updated with a rating of 
#{rating}."
  end

when "display"
  movies.each do |movies, rating|
    puts "#{movies}: #{rating}"
  end

when "delete"
  puts "Please enter movie title:"
  title = gets.chomp.to_sym
  if movies[title.to_sym].nil?
    puts "Title doesn't exist"
  else
  movies.delete(title)
  puts "#{title} has been deleted!"
end

else
  puts "Error!"
end

可以使用小写符号

movies = { starwars: 4.8, divergent: 4.7}
然后将用户输入的内容转换为所有小写字母

  title = gets.chomp.downcase.to_sym

这会将标题大写的任何差异(
STARwars
STARwars
,等等…)转化为
STARwars

“返回错误”不是一个足够精确的错误描述,我们无法帮助您。什么不起作用?它怎么不起作用?你的代码有什么问题?错误信息是什么?您有一个键
:StarWars
,但没有键
:StarWars
。搜索
:startwars
找不到任何东西才有意义。谢谢大家。约翰·英格拉姆,我试过了。唐卡斯没有把符号也改成唐卡斯,这是行不通的。我相信