The Bottom Line
The Rails 3 Way by Obie Fernandez is a complete introduction to Ruby on Rails 3. It's not simply an update to the previous version of this book, The Rails Way, it's a completely new work. The Rails 3 Way takes a bottom-up approach to teaching a large and complex subject. While this book may differ from many other works teaching Rails in this respect, in the end it works very well. And while it does assume a working knowledge of Ruby itself, it assumes no knowledge of Rails at all. This is an excellent book for anyone either wanting to learn Rails 3 from the ground up, or for anyone moving from Rails 2.
- The Rails 3 Way takes a very grounded, bottom up approach to teaching Rails 3.
- Rails is covered thoroughly, and covers a number of ancillary topics developers will need to know.
- Topics are covered in-depth, but are organized well so they don't read like API documentation.
- Slow to start. You'll be reading many things before putting any web pages on the screen.
- Test-Driven Development is not featured prominently.
- Chapters 1 and 2 get you started with some fundamentals: configuring applications, Bundler, logging and routing.
- Chapters 3 and 4 cover REST, RESTful resources and controllers.
- Chapters 5, 6 and 7 cover Active Record, migrations and associations.
- Chapters 8 and 9 finish off the discussion of Active Record with validations and miscellaneous advanced topics.
- Chapters 10 and 11 cover Action View and helper methods. Rails 3 has a lot of helpers, and many of them are documented here.
- Chapter 12 discussed AJAX. Both how to use AJAX in your HTML code as well as how to respond to AJAX requests is covered.
- Chapters 13 and 14 cover session management and several third party solutions for authentication.
- Chapters 15, 16 and 17 cover XML, Action Mailer and Caching.
- Chapter 18 covers RSpec and test-driven development with Rails.
- Chapters 19 and 20 cover Rails plugins and several solutions for doing background processing in Rails application.
Guide Review - The Rails 3 Way
The Rails 3 Way by Obie Fernandez is a ground up approach to teaching Ruby on Rails 3 development. It's a traditional, grounded, well written and all around great Rails book for both newbies and experienced Rails and Ruby developers.
Think back to 2005 and to infamous Rails Blog in 15 Minutes video, where the presenter builds a blog from the ground up in 15 minutes. So impressive was this video that many works that aim to teach Rails start off with a quick project to show how quick Rails can be. The Rails 3 Way by Obie Fernandez takes a very different approach, opting for a ground-up discussion of Rails. While this, seems very slow at first, you'll soon realize that it's for the better and that while very impressive, "15 minute" projects do little to actually teach you Rails.
Among many other great qualities, The Rails 3 Way is written by some top-notch Rails people. There are two forwards by two very prominent Rubyists: DHH (the original creator of Rails) and Yehuda Katz. There are also sidebars by Yehuda Katz, Jamis Buck and Xavier Noria.
The Rails 3 Way is organized in a very no-nonsense, "first things first" manner. It starts with showing how to use Bundler, how some of the basic configuration and boot files work, etc. It then builds your Rails knowledge slowly and methodically. You won't be coding Rails apps after an hour of reading this book, but by the end, you'll know absolutely everything you need to know.
The only real criticism I have about the book is the apparent lack of RSpec (or other TDD/BDD) integration. There is a chapter about it, and it is covered quite well, but it's halfway through the book. It's not quite an afterthought, but it's not front and center as it perhaps should be. Rails and agile development isn't much without adequate tests, and implementing these tests is left as an exercise for the reader.
Overall, this is a really great book. The only reason I can think of not getting The Rails 3 Way over another title is if you disagree with the bottom up approach. This is truly a "must have" title for any Rails developer, or even developers just moving from Rails 2.