railscasts 27, 28, 29 and 30