views:

1302

answers:

3

I've never worked with web services and rails, and obviously this is something I need to learn. I've chosen to use hpricot because it looks great. Anyway, _why's been nice enough to provide the following example on the hpricot website:

 #!ruby
 require 'hpricot'
 require 'open-uri'
 # load the RedHanded home page
 doc = Hpricot(open("http://redhanded.hobix.com/index.html"))
 # change the CSS class on links
 (doc/"span.entryPermalink").set("class", "newLinks")
 # remove the sidebar
 (doc/"#sidebar").remove
 # print the altered HTML
 puts doc

Which looks simple, elegant, and easy peasey. Works great in Ruby, but my question is: How do I break this up in rails?

I experimented with adding this all to a single controller, but couldn't think of the best way to call it in a view.

So let's say you were parsing an XML file from a web API and printing it in nice clean HTML with Hpricot.

How would you break up the activity over the models, views, and controllers, and what would you put where?

A: 

I'd probably go for a REST approach and have resources that represent the different entities within the XML file being consumed. Do you have a specific example of the XML that you can give?

John Topley
A: 

OK, I see where you're going. Right now I'm playing with the Zillow API, so I'm working with this XML document: http://www.zillow.com/webservice/GetZestimate.htm?zws-id=X1-ZWz1cpvyjmwhzf_6sext&zpid=48749425. So I can see how I could create different resources for, say, homedetails and myestimator, but don't know how to cleanly define them and then call them in a view.

Bryan Woods
+2  A: 

Model, model, model, model, model. Skinny controllers, simple views.

The RedHandedHomePage model does the parsing on initialization, then call 'def render' in the controller, set output to an instance variable, and print that in a view.

Terry Lorber