Chapter 2 in https://www.railstutorial.org/book/toy_app