Rails 2.3: What's New?
Rails 2.3 is out (actually, 2.3.2). I thought I'd take a few quick moments to summarize for DDJ readers the new and noteworthy features that make this a stellar release.
Most importantly, from my point of view, Rails now runs on Rack, a standard WSGI-ish Ruby network stack. Aside from being a good unifying architectural move, this also means that Rails now has access to Rack middleware. You can leverage this directly through "Rails Metal", which allows you to bypass Action Controller and handle requests directly -- basically a thin wrapper around Rack with access to the session. Metal is useful for optimizing certain actions (like polling services) that need to be fast and don't need the overhead of the full MVC stack.
The new application templates feature in Rails is also really useful, particularly to those of us that run consulting shops and have been maintaining default blank slate applications that include a standard suite of gems, configs, plugins, JavaScript libraries, and so on. Now you can easily accomplish the same thing using templates, but in a much more flexible way. Check out the collection of templates maintained by Jeremy McAnally (original author of Rg, from which this feature was taken) or you can also generate a template with ease now using RailsBoost courtesy of Hampton Catlin and Robert Pitts. Slick.
Another notable feature in 2.3 is the return of Rails Engines (formerly a plugin, now in core). Engines allow developers to share reusable vertical application slices complete with routes, models, views, etc that are all self-contained. Imagine dropping a forum engine or a shopping cart or image gallery 'slice' into your existing application, for instance.
Finally, Rails also includes a number of other progressive enhancements, such as the new nested attributes work that makes dealing with complex forms a lot easier, default scopes for your models, and http digest authentication support, among other features. If you want to read more, check out the full release notes.

