Channels ▼

Mike Riley

Dr. Dobb's Bloggers

The Rails 3 Way Book Review

January 17, 2011

One of many reasons why Rails has become so popular is due to its ability to abstract the difficult, mundane operations of web application development. But once developers become skilled with Rails, they want to dive into the internals to see what makes it tick. Well known Rails community member Obie Fernandez has done just that with The Rails 3 Way. Does the book achieve its objective?

The Rails 3 Way leaves no stone unturned. Every notable aspect of Rails is explored, and while it may take an occasional re-reading of a chapter, determined learners will gain substantial insight into the workings of the Rails framework. Starting with the Rails environments and configurations, Chapter 1 covers the Bundler, app settings, development, test and production modes and log files. The next chapter covers all things routing, something that has changed quite a bit in Rails 3 compared to earlier versions. Next up, REST in Rails, followed by a comprehensive chapter on controllers. Chapters 5 through 9 cover the many details of active record, including migrations, associations, validations and advanced features like chaining scopes, callbacks, observers and Single-Table Inheritance (STI). Chapters 10, 11 and 12 cover action view, helpers and Ajax on Rails respectively. Chapters 13, 14 and 15 dive into session management, authentication and XML and Active Resource, while chapters 16 and 17 explore the new emailing system in Rails 3 called Action Mailer as well as helping readers understand Rails caching and performance practices. Chapter 18 discusses RSpec, providing an adequate introduction to the testing framework that has more or less replaced Rails' own Test::Unit as the Rails developer testing framework of choice. Chapter 19 looks at Rails plug-ins and the book concludes with a chapter on understanding and running Rails background processes. The two appendixes on the Active Model API and Active Support API references complete the book.

One aspect of Obie's approach that I really appreciate are the injections of his friends (who are also well respected members of the Rails developer community, people like Yehuda Katz, Jamis Buck and Xavier Noria) who supply their own pearls of wisdom on the topic of focus. Not only do these help give flavor to the chapters, but also indirectly highlight some really valuable nuggets of hard-learned experience. And because Obie refers to these contributors by their first names, its a more personal touch that gave me the feeling like I was having a conversation with Obie at a RailsConf, with his friends popping in from time to time with their own brief contributions. Nice touch.

This book is not for beginners; it is most definitely not a Rails tutorial. If you need to learn Rails, check out Michael Hartl's excellent Ruby on Rails Tutorial book and video series instead. Even intermediate Rails programmers will need to re-read the book to help the contents soak in.

The Rails 3 Way's target audience are those Rails developers who have already written several Rails applications and are seeking a fast-track way to learn as much of the framework's nuances. Most experts will be able to gloss over some of the material, but will no doubt discover valuable pockets of insight deeper understanding along the way. Thus, for intermediates and above, I strongly recommend adding this title to your technical bookshelf. There is simply no other Rails title on the market at this time that offers the technical depth of the framework than The Rails 3 Way.

Title: The Rails 3 Way Author: Obie Fernandez Publisher: Addison-Wesley Professional ISBN: 978-0-321-60166-7 Pages: 768 Price: $39.99 (Ebook), $49.99 (Print)

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.