Awesome work on managing to find the answer to your own question!
There's also another really subtle bug I saw inside the case statement for "update" when I was checking out your code
if movies[title.to_sym] = nil
if statement will always evaluate to
nil and be skipped over because
movies[title.to_sym] is being set to
= instead of checking if it's equal to nil with
==, so it's possible to use update to add a new movie which doesn't already exist.
I found the best way to avoid these subtle bugs as a beginner was to take advantage of the fact that
movies[title.to_sym] will be
nil anyway if that movie doesn't exist. This means you don't have to explicitly do
== nil checks anymore, which means less typing for us!