Rails 1.1: RJS, Active Record++, respond_to, integration tests, and 500 other things!.
The biggest upgrade in Rails history has finally arrived. Rails 1.1 boasts more than 500 fixes, tweaks, and features from more than 100 contributors. Most of the updates just make everyday life a little smoother, a little rounder, and a little more joyful.
But of course we also have an impressive line of blockbuster features that will make you an even happier programmer. Especially if youre into Ajax, web services, and strong domain models and who isnt these funky days?
The star of our one-one show is RJS: JavaScript written in Ruby. Its the perfect antidote for your JavaScript blues. The way to get all Ajaxified without leaving the comfort of your beloved Ruby. Its the brainchild of JavaScript and Ruby mastermind Sam Stephenson and an ode to the dynamic nature of Ruby. . . .
The recently launched API for Basecamp uses this approach to stay DRY and keep Jamis happy. So happy that he wrote a great guide on how to use respond_to
Speaking of Jamis, he also added the third layer of testing to Rails: Integration tests. They allow you to faithfully simulate users accessing multiple controllers and even gives you the power to simulate multiple concurrent users. It can really give you a whole new level of confidence in your application. The 37signals team used it heavily in Campfire from where it was later extracted into Rails. See Jamis great guide to integration testing for more.
These highlighted features are just the tip of the iceberg. Scott Raymond has done a great job trying to keep a tab on all the changes, see his What new in Rails 1.1 for a more complete, if brief, walk-through of all the goodies. And as always, the changelogs has the complete step-by-step story for those of you who desire to know it all.
And as mentioned before, Chad Fowlers excellent Rails Recipes has in-depth howtos on a lot of the new features. If you desire some packaged documentation, this is the book to pick up.
Upgrading from 1.0
So with such a massive update, upgrading is going to be hell, right? Wrong! Weve gone to painstaking lengths to ensure that upgrading from 1.0 will be as easy as pie. Here goes the steps:
- Update to Rails 1.1:
gem install rails --include-dependencies
- Update JavaScripts for RJS:
rake rails:update
Thats pretty much it! If youre seeing any nastiness after upgrading, its most likely due to a plugin thats incompatible with 1.1. See if the author hasnt updated it and otherwise force him to do so.
If youre on Ruby 1.8.2 with Windows, though, youll want to upgrade to the 1.8.4 (or the script/console will fail). And even if youre on another platform, its a good idea to upgrade to Ruby 1.8.4. We still support 1.8.2, but might not in the next major release. So may as well get the upgrading with over with now. [Riding Rails]