I’ve updated this post to reflect the features added after RC1, so consider this to be a full list of major 2.2 features
Rails 2.2 (RC1) was just released, let’s take a peek at some of the major new features (as determined by yours truly – feel free to pipe up with features that I’ve missed).
Rails 2.2.2 requires rubygems v 1.3.1, so before you upgrade make sure to do a sudo gem update --system.
Rails 2.2 Features
- :except and :only Routing Options
- Better Conditional GET Support
- Connection Pools (Rails 2.2 is thread-safe!)
- Mailer Layouts
- Shallow Routes
- Simpler Conditional Get Support, And Even Better Conditional GET Support
- Standard Internationalization Framework
- Get Your Metaclass
- Easy Memoization
- Easy Join Table Conditions
- Custom Length Validation Tokenizer
- Collection Partial Variable Naming
Note: The nested model mass assignment feature previously discussed has been delayed until after this 2.2 release. Just needs a little more time in the oven, apparently.
Enjoy, folks.
tags: ruby, rubyonrails

Great stuff, but your post about the :shallow option is still wrong, and it’s going to cause some real confusion among Rails newbies (your target audience).
“This configuration keeps all the normal nested routes” is NOT TRUE. :shallow does NOT generate the nested routes for show, edit, update and destroy—it MOVES them to the non-nested position.
You’re telling people that :shallow generates extra routes, but actually it generates exactly the same number of routes, just in a non-nested position when the resource ID is specified.
Thank you Ryan!
Tom – you’re absolutely right. I’ve updated the original post to be more clear about what routes are generated. Thanks for the catch.
-Ryan
In your post on “Custom Length Validation Tokenizer” you say “the default behavior is to just count the number of characters in the attribute value”. While it does indeed do this, if it is unable to count the number of characters (say the passed value is not a string), it will fall back to calling #size on the passed object. But it’s great to see that we have even more flexibility now.
Thanks Ryan! I appreciate all the work you put into your blog.
Efforts appreciated , like the new version 2.2 and the links here are a good reason why.Thanx
I think you can also mention new migrations naming convention. Now it has timestamp instead of sequence number. This allows easy branch merging.