Foreword by Derek Sivers xv Foreword by Obie Fernandez xviiAcknowledgments xixAbout the Author xxi Chapter 1: From Zero to Deploy 11.1 Introduction 31.2 Up and Running 91.3 Version Control with Git 241.4 Deploying 351.5 Conclusion 40 Chapter 2: A Demo App 412.1 Planning the Application 412.2 The Users Resource 442.3 The Microposts Resource 582.4 Conclusion 69 Chapter 3: Mostly Static Pages 713.1 Static Pages 743.2 Our First Tests 843.3 Slightly Dynamic Pages 1033.4 Conclusion 1153.5 Exercises 116 Chapter 4: Rails-Flavored Ruby 1194.1 Motivation 1194.2 Strings and Methods 1254.3 Other Data Structures 1344.4 Ruby Classes 1444.5 Exercises 154 Chapter 5: Filling in the Layout 1575.1 Adding Some Structure 1575.2 Layout Links 1775.3 User Signup: A First Step 1865.4 Conclusion 1915.5 Exercises 191 Chapter 6: Modeling and Viewing Users, Part I 1936.1 User Model 1946.2 User Validations 2106.3 Viewing Users 2276.4 Conclusion 2366.5 Exercises 237 Chapter 7: Modeling and Viewing Users, Part II 2397.1 Insecure Passwords 2397.2 Secure Passwords 2507.3 Better User Views 2627.4 Conclusion 2797.5 Exercises 280 Chapter 8 Sign Up 2838.1 Signup Form 2838.2 Signup Failure 2928.3 Signup Success 3058.4 RSpec Integration Tests 3138.5 Conclusion 3218.6 Exercises 321 Chapter 9: Sign In, Sign Out 3259.1 Sessions 3259.2 Signin Failure 3329.3 Signin Success 3389.4 Signing Out 3549.5 Conclusion 3639.6 Exercises 363 Chapter 10: Updating, Showing, and Deleting Users 36510.1 Updating Users 36510.2 Protecting Pages 37610.3 Showing Users 38410.4 Destroying Users 39910.5 Conclusion 40810.6 Exercises 409 Chapter 11: User Microposts 41111.1 A Micropost Model 41111.2 Showing Microposts 42511.3 Manipulating Microposts 43411.4 Conclusion 45711.5 Exercises 458 Chapter 12: Following Users 46112.1 The Relationship Model 46312.2 A Web Interface for Following and Followers 48212.3 The Status Feed 50712.4 Conclusion 51912.5 Exercises 523 Index 527
Michael Hartl is a programmer, educator, and entrepreneur. He coauthored RailsSpace (Addison-Wesley, 2008), and was cofounder and lead developer of Insoshi, a popular social networking platform based on Rails. He previously taught theoretical and computational physics at the California Institute of Technology, earning the Caltech Lifetime Achievement Award for Excellence in Teaching. Michael is a graduate of Harvard College, holds a Ph.D. in physics from Caltech, and is an alumnus of the Y Combinator entrepreneur program. He maintains the Rails Tutorial website at railstutorial.org.
RailsTutorial.org: Michael Hartl's awesome new Rails Tutorial The Ruby on Rails (TM)3 Tutorial: Learn Rails by Example by Michael Hartl has become a must read for developers learning how to build Rails apps.-Peter Cooper, editor of Ruby Inside Very detailed and hands-on Rails Tutorial!Great job! I'm learning Rails, and found your tutorial to be one of the most detailed and hands-on guides. Besides many details of Rails, it also taught me about Git, Heroku, RSpec, Webrat, and most important (at least to me), it emphasized the Test-Driven Development (TDD) methodology. I learned a lot from your tutorial. Keep up the good job! Thanks so much for sharing it.-Albert Liu, senior manager, Achievo Corporation. Ruby on Rails Tutorial is the best!Just wanted to say that your Ruby on Rails tutorial is the best! I've been trying for a while to wrap my head around Rails. Going through your tutorial, I'm finally feeling comfortable in the Rails environment. Your pedagogical style of gradually introducing more complex topics while at the same time giving the reader the instant gratification and a sense of accomplishment with working examples really works for me. I also like the tips and suggestions that give me a sense of learning from a real Rails insider. Your e-mail response to a problem I ran into is an example of your generous sharing of your experience.-Ron Bingham, CEO, SounDBuytz I love the writing style of the Rails TutorialI love the writing style of the Rails Tutorial, and there is so much content that is different from other Rails books out there, making it that much more valuable...Thanks for your work!-Allen Ding