Rails 2.2 Released
Rails 2.2 was rather quietly released into the wild last week, but due to zany holiday scheduling I'm just now getting a look at it. Basically it's another nice solid release that helps make the platform more robust and also adds a handful of new features (full release notes).
The big news, of course, is that Rails is now officially thread-safe (and supports connection pooling). If you're a JRuby user this is a really big deal, as all the pieces of the Rails stack are now thread-safe. If you're using MRI, there are still a number of other dependent libraries that need some work before it'll make a big impact. But this is hugely important none the less, and something that Rails has been long-critized for of course.
The other significant (new) feature of the release is baked-in i18n support. In short, although Rails still only supports English out of the box, it's now easy to configure alternative languages. Trevor Turk has a great example of how simple this can be written up on his blog.
Other improvements worthy of note:
- Rails is now fully Ruby 1.9 and JRuby compatible
- Improvements to the etag and last-modified client cache controls
- Hashes for join table conditions in ActiveRecord
- :only and :except options to tune the default generated resource routes (a memory saver!)
- Mailer layouts for ActionMailer
- Easy-to-use method memoization support
There's also been a lot of work on the documentation front. The API docs have improved significantly, and the new guides section of rubyonrails.org was rolled out, which is worth a look if you haven't yet seen it.
New to Rails and looking to get started? Check out the recently updated getting started screencast by Ryan Bates. It's a great way to see how easy it is to get started with Rails.
As always, you can install the latest version of Rails via RubyGems (gem install rails) but be warned that Rails now requires RubyGems 1.3.1 so you should check your version of gem first with gem --version. Some folks have had difficulty updating Gems, but this is easily resolved by following Eric Hodel's instructions.

