Chapter 2 of RoR demo_app (second attempt)