ror sample app chapter 3