Second Ruby application from railstutorial.org (chapter 3)