I had same problem at first and read that you can't store the to_sym unless you give it a var to store to or you can just call movies[title.to_sym] = ratings.to_i and it will then store it. This is how i ran the case:

case choice when 'add' puts "Enter the name of your favorite movie" title = gets.chomp if movies[title.to_sym] == nil puts "How would you rate this movie on a scale of 1 to 5 stars" rating = gets.chomp movies[title.to_sym] = rating.to_i puts "your movie and rating has been added to the list" else puts "This movie already has a review" end when 'update' puts "Please enter the name of the movie you would like to update" title = gets.chomp if movies[title.to_sym] == nil puts "Sorry but this movie is not currently in the list" else puts "#{title}'s current rating is #{movies[title]} what would you like to change it to?" rating = gets.chomp movies[title.to_sym] = rating.to_i end when 'display' movies.each do |movie, rating| puts "#{movie}: #{rating}" end when 'delete' puts "what movie rating would you like to delete" title = gets.chomp if movies[title.to_sym] == nil puts "Sorry but this movie is not currently in the list" else movies.delete(title.to_sym) puts "The movie #{title} has been deleted!" end else puts "Error!"end seemed to work for me.