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.
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.