O'Reilly logo

Professional Ruby on Rails™ by Noel Rappin

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

9.2. ActiveResource

In the beginning there was ActiveWebService, part of the Rails core that allowed Rails to act as a SOAP or XML-RPC client and server. And it was ... okay. Then David Heinemeier Hansson (the creator of Ruby on Rails) announced in his keynote address at the 2006 RailsConf that Rails was going to be supporting REST as a web services architecture in a big way. ActiveWebService would be removed from the Rails 2.0 core, although it would still be available as a plugin.

In the Rails 2.0 world, Rails applications act as web service servers through the support of REST in the design of the controllers, and as web service clients through a new Rails library called ActiveResource. The ActiveResource library is specifically designed to work with external sites that follow the REST standard.

Why the change? It seems as though Hansson and the Rails team saw the opportunity to improve the design of Rails applications in multiple directions at once. By encouraging the limitation of controller classes to the CRUD (Create, Read, Update, Delete) set of actions, it moves Rails even further in the "convention, not configuration" direction. Simultaneously, the more that Rails controllers have a consistent, predictable set of actions, the easier it is to write and maintain client applications that rely on those servers to acquire their data. At that point, it becomes possible to have a smart web services client that can infer the structure of their objects in much the same way that ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required