2008-08-26 14 views
1

Je n'ai jamais travaillé avec des services web et des rails, et c'est évidemment quelque chose que j'ai besoin d'apprendre. J'ai choisi d'utiliser hpricot parce que c'est génial. Quoi qu'il en soit, _why a été assez gentil pour donner l'exemple suivant sur la hpricot website:XML => HTML avec Hpricot et Rails

#!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 

Ce qui semble Peasey simple, élégant et facile. Fonctionne bien dans Ruby, mais ma question est: Comment puis-je casser dans les rails?

J'ai expérimenté avec l'ajout de tout cela à un seul contrôleur, mais je ne pouvais pas penser à la meilleure façon de l'appeler dans une vue. Donc, si vous analysiez un fichier XML à partir d'une API web et que vous l'imprimiez en HTML avec Hpricot, comment répartiriez-vous l'activité sur les modèles, vues et contrôleurs, et que feriez-vous là où?

Répondre

2

Modèle, modèle, modèle, modèle, modèle. Contrôleurs maigres, vues simples. Le modèle RedHandedHomePage effectue l'analyse lors de l'initialisation, puis appelle 'def render' dans le contrôleur, définit la sortie sur une variable d'instance et l'imprime dans une vue.

0

J'opterais probablement pour une approche REST et des ressources qui représentent les différentes entités dans le fichier XML consommé. Avez-vous un exemple spécifique de XML que vous pouvez donner?