XML => HTML con Hpricot e Rails
-
09-06-2019 - |
Domanda
Non ho mai lavorato con servizi web e binari, e ovviamente questo è qualcosa che devo imparare.Ho scelto di utilizzare hpricot perché ha un bell'aspetto.Ad ogni modo, _why è stato così gentile da fornire il seguente esempio su sito web hpricot:
#!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
Che sembra semplice, elegante e facile da usare.Funziona alla grande in Ruby, ma la mia domanda è:Come posso suddividerlo nei binari?
Ho provato ad aggiungere tutto questo a un singolo controller, ma non sono riuscito a pensare al modo migliore per chiamarlo in una vista.
Quindi, se analizzassi un file XML da un'API Web e lo stampassi in un HTML pulito e gradevole con Hpricot, come suddivideresti l'attività su modelli, visualizzazioni e controller e cosa inseriresti dove?
Soluzione
Modello, modello, modello, modello, modello.Controller ridotti, visualizzazioni semplici.
Il modello RedHandedHomePage esegue l'analisi al momento dell'inizializzazione, quindi chiama "def render" nel controller, imposta l'output su una variabile di istanza e lo stampa in una vista.
Altri suggerimenti
Probabilmente opterei per un approccio REST e disporrei di risorse che rappresentano le diverse entità all'interno del file XML da consumare.Hai un esempio specifico di XML che puoi fornire?