Here's another entry in my ongoing Rails book review series.
Title: The Rails Way
Author: Obie Fernandez
Publisher: Addison-Wesley
The latest entry in Addison-Wesley's Professional Ruby Series is The Rails Way, by Obie Fernandez. The name is a nod to Hal Fulton's noble classic The Ruby Way, and it's clear this book aims to be as significant a feature in the Rails publishing landscape. The good news is that the book delivers, and then some. The Rails Way appears destined to become the new bible of Rails development.
Before I dive into the full review, a disclaimer. Obie is a friend and fellow cabooser, and someone I have a lot of respect for. I just want to get that out of the way so that no one can say I'm shilling for his book on the sly. But I'm glad I can give him a good review with a clear conscience. Anyway, back to the review.
The first thing you'll notice about The Rails Way is that it is simply enormous. At over 900 pages it is nearly twice the size of Agile Web Development with Rails. Quantity has a quality all its own, and the volume of this volume gives Obie room to go seriously in depth into just about every interesting aspect of Rails development. The size of the book makes doing a chapter-by-chapter analysis impractical. It even made doing a full read-through too daunting for me to attempt. So I did the review by reading a couple select chapters, then using the book as a reference for a couple weeks. Anytime I wanted to look something up in the API I used The Rails Way instead. There were a few odd corners of the API that weren't covered, but in general for everything I had to look up, the book had some useful information for me. That says something about its breadth. But it goes deep too. Obie doesn't just mention a feature and brush you off with a brief description of the API. He talks about the feature, puts it in context, sometimes talks about its history and evolution, says how you should use it, how you shouldn't use it, and when there is a better alternative. It's sort of like being tutored by a Rails expert with logorrhea (but in a good way).
As I said, an analysis of each chapter would be more than I can manage here, but the table of contents itself will give you an idea of the ambitious scope of the book:
- Rails Environments and Configuration
- Working with Controllers
- Routing
- REST, Resources and Rails
- Reflecting on Rails Routing
- Working with ActiveRecord
- ActiveRecord Associations
- ActiveRecord Validations
- Advanced ActiveRecord
- ActionView
- All About Helpers
- AJAX on Rails
- Session Management
- Login and Authentication
- XML and ActiveResource
- ActionMailer
- Testing
- RSpec on Rails
- Extending Rails with Plugins
- Rails Production Configurations
- Capistrano
- Background Processing
- Appendix A: ActiveSupport API Reference
- Appendix B: Rails Essentials (plugins and other tools)
You can see that the topics include things that aren't part of Rails itself, but things that everyone needs to do with Rails. It also documents parts of Rails that aren't well-documented anywhere else. Talk about exhaustive, I'm tired just from looking at that list of chapters.
The second thing you may notice is the cheery yellow stamp on the cover that says, "Covers Rails 2.0". Obie's been working on this book for ages, but somehow he managed to time it to hit the shelves within a week or two of the release of Rails 2 itself. I'm sure keeping up with all the changes and occasional API flailing was a major challenge, but it's great to have a thorough treatment of Rails that will have some staying power. Of course, Rails is a fast-moving target, so there are some details that will need to be corrected in the second printing. But don't let that stop you from getting the book now; it's worth it even with the minor blemish here and there. And if you're worried stuff might not get corrected, just take a look at the bug tracking site for the book - they are on top of it!
Speaking of corrections, if you have a copy of the first printing (which would be everyone who has the book right now), the epigraphic quote by me at the start of Chapter 7 should say "reify" instead of "rarefy". Which is a nice segue into my next observation. The biggest strength of Rails is the community of people who use and contribute to it. So it's appropriate that Obie has invited some well-known Rails developers to contribute material to his book. He also has included many relevant quotes and commentaries from various developers (including a couple from yours-truly) and references to supporting software and writings. This strengthens the book in two ways. It adds important information, and it connects Rails to its ecosystem. As anyone who has gotten into Rails knows, trying to learn and use Rails in a vacuum is pointless. Learning about the people in the community and the extras that make Rails even more useful can be just as important as learning the API.
I'd like to say more about this book, but I think I've hit all the important points. I'll close by saying that on top have having a ton of information, The Rails Way is very well-written. It's well-organized, nicely structured, and the text itself is very readable. And the persnickety editor in me is even satisfied with the index.
Go get yourself a copy of The Rails Way and have fun upgrading to Rails 2.
I absolutely loved this book. Obie seems to be proactive to revise and update it accordingly, as well, which is also nice. There are some Rails 2.0 things that didn't get as much exposure, probably due to the changing API. Having a resource that is this exhaustive is wonderful. I would agree with you, that this seems to be destined to be the Rails Bible.
It is mammoth in size, but still an easy and informative read.
I am in the process of launching my new site with a Rails backend, and this book helped me to revise and really tune my process to 'the rails way'.
Thanks for the excellent review.
Thanks Josh, this brought a little tear of happiness to my eye. :)
Nate: Thanks, glad you liked it. And I just read your own review of TRW. That's the review I wasn't up to writing, but it's good to see an extensive, detailed report like that. Thanks for taking the time.
I'm worrying this book can't be the next bible because there is no PDF version and the shipping to Europe is $45. For almost $100 it is simply too expensive compared to $23.50 for AWDR.
i agree. You have to sell the pdf version also these days
Hi,
First, thnx for the review. Made want to buy the book but Jiri's remark made think again. Looking at a dutch online bookstore (bol.com) made me happy again. It sells for Euro 41,99. So Jiri take a look at an online bookstore in your part of the world, maybe they sell it.
You forgot to mention that Chapter 2 starts off with a Nick Kallen quote!
Went out and picked up the book, tis a great help. Thanks for the pointer.
The Rails Way is in fact available electronically via Safari or as a PDF via http://www.diesel-ebooks.com/cgi-bin/item/0321524977/The-Rails-Way-eBook.html
Cheers, Obie
Please note that the version offered at diesel-ebooks is not a pdf version. Or at least it is some drm'ed version that forces to download crappy Adobe DRM readers instead of reading it in the pdf reader of your choice. The website is very good at squirreling this information away from you-- I didn't find it, and I was at least trying to find it for a little while before purchasing.
The best part? You are allowed no more than 30 copies to the clipboard each month.
So your choices are lug around a 911 page dead tree version (but maybe you can get a smaller MacBook next month to make up for it?), or "license" the defective by design version. Grr, welcome to agile book publishing.
Where's the (DRM-free) ebook version?
Cmd+F doesn't work on dead trees.
I second the need for a decent ebook. I have a hardcopy and its fantastic, but using it a quick reference isnt really possible. Apress has ebooks with pdf protection, which I'm fine with. Diesel has a horrible reader, so please dont let that be the only alternative.
Help us Obie... your our only hope.
I'd like to chime in here regarding the ebook. I'm glad I didn't pull the trigger on the Diesel PDF as I would have been very disappointed at not being able to use the PDF in an ebook reader or on my laptop with my other non-DRM'd Rails titles from the Pragmatic bunch.
Thanks. I loved this book & Has got pdf version...
I agree, great book!
This is the book that Rails has been missing. Loads of comprehensive detail on the stuff we developers really need. Thats plug-ins, pagination, advanced routing and all those real practical things that makes it obvious this book was written by someone who works as a Rails consultant/developer. Its already my Rails bible.
Excellent book!
Some details about the eBook... (Yes, I really really needed a digital version.) As mentioned above, you get a DRM'd ebook requiring Adobe Reader Digital Editions which does not support Leopard! (Many words could be and were said on this subject...)
In any case, there's a workaround. Good luck!
From: https://forum.adobe.com/webx?14@@.3c054d0f/1
reklessen - 12:41pm Jan 13, 08 PST (#22 of 28)
Wanted to read already purchased .pdf content on MacBook Pro instead of older G4. After hours of frustration, only very specific set of steps worked for me.
(1) Must use Safari to open this page: http://www.adobe.com/products/acrobat/readstep2_allversions.html Other browser would not let drop-down menu drop down (assume it detected I was "lying" and would not cooperate). (2) Chose OS 10.2.8 as indicated in above post. (3) After download QUIT all Adobe software. (4) Run Reader 7.0.9 installer in .dmg. (5) Open Reader .app and File >> Digital Editions >> Authorize device. Saved authorization file to desktop, then double-clicked from there. (6) Make sure browser lists current Mac in authorized devices list at bottom of Digital Editions accounts webpage. (7) Keep saying NO every time Adobe pop-up offers to update Reader to version 8 (already HAVE that!!) ( Open Reader 7.0.9 first. Make sure Acrobat 8 Pro and Reader 8 not open. (9) Control-click and "open with" pdf file or File >> Open within Reader 7.
Note -- if downloading more than one .etd file book purchase from same invoice at provider's website, browser put (2) and (3) on end of .etd file name. Needed to REMOVE the (2) and (3) from end of file names to get process to complete downloads.
does pdf version work on linux with kpdf ?
thanks