RoR: generando RSS

octubre 9 2009Se el primero en comentar

Guardado en : General, Software Libre

Un RSS o Really Simple Sindication o tambi茅n Rich Site Summary, nos sirve para sindicar o anotar las actualizaciones de un sitio o alg煤n otro objeto que nos interese saber sus actualizaciones o cambios que aparezcan al respecto del elemento. Por ejemplo puede servir para saber las ultimas respuestas de un tema, si se han agregado nuevas entradas a cierto elemento, etc.

En RoR siguiendo el MVC (modelo vista controlador), generar un RSS es generar una vista sobre los elementos que queremos sindicar indicando esta vista mediante el controlador.

Esta vista es consultada por los lectores de RSS que a diferencia de los navegadores, est谩n checando la URL del RSS cada determinado tiempo para ver si existe alguna actualizaci贸n sobre el archivo.

Lo que se necesita b谩sicamente es tener una lista de los elementos y una forma de generar el XML con el formato especificado de un RSS, hacer esto en RoR es sencillo, s贸lo tienes que seguir estos tres pasos.

Primer paso, indicar en el controlador que se va a usar el formato atom, mediante format.atom { render :atom => @cosa }

  def index
    @cosas = Cosa.rev_desc
 
    respond_to do |format|
      format.atom { render :atom => @cosas }
    end
  end

Segundo paso, crear un archivo llamado index.atom.builder en la carpeta de la vista del controlador en cuesti贸n en este caso “views/cosas”, dentro del mismo, podemos agregar los elementos que deseemos respectivos en el body de cada elemento. El feed (RSS) costa de un t铆tulo, la fecha de la 煤ltima actualizaci贸n y una lista de elementos que son las ultimas actualizaciones. Tambi茅n notar la diferencia entre la extensi贸n “.erb” y la “.builder” esta 煤ltima nos facilita la creaci贸n de archivos XML y se ve de la siguiente forma. Puedesver una espec铆ficaci贸n de los campos en esta referencia.

atom_feed do |feed|
    feed.title("Poner t铆tulo")
    feed.updated(@cosas.first.created_at)
 
    @cosas.each do |cosa|
        feed.entry(cosa) do |entry|
        entry.title(cosa.name)
        entry.content(cosa.description, :type => "html")
        end
    end
end

Tercer paso y final, necesitamos introducir entre las etiquetas del HTML el link en donde se encuentra nuestro RSS para que lo puedan descrubrir y agregar los usuarios al visitar nuestro sitio desde su navegador o lector RSS.

<head>
<%= auto_discovery_link_tag :atom, formatted_cosas_path(:atom) %>
</head>

As铆 se tiene un RSS completamente funcional.

Finalmente si quieres validar tu feed, lo puedes hacer mediante alguno de los validadores que listan aqu铆.

Comparte esta informaci贸n:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • BarraPunto
  • LinkedIn
  • Technorati
  • TwitThis

Quiz谩 te interese :

Acerca del autor: tyoc

Deja un comentario


Licencia y uso

Las técnicas demostradas en los tutoriales pueden ser utilizadas sin ninguna limitación y tampoco es obligatorio dar una atribución.


Los textos, imágenes y tutoriales son propiedad de sus respectivos autores, nuestro contenido se encuentra bajo licencia Creative Commons Share-Alike.

Escribe algo para el sitio

El escribir un tutorial o un artículo, mandarnos un enlace para Ubicuos, no solamente es una forma de obtener publicidad, si no también de dar algo a la comunidad y nosotros te lo recompensamos con los premios del mes! Leer más de nuestras promociones

驴Sugerencias?

Este es TU sitio, si tienes sugerencias o ideas de c贸mo podemos mejorarlo para ti, 隆Por favor h谩znoslos saber!

Hacemos nuestro mayor esfuerzo en proporcionar un sitio 煤til y amigable y esperamos que disfrutes tu tiempo aqu铆.

Ayuda a Difundir

Te gusta Ubicuos?

Ve las formas en que nos puedes apoyar.

Apoyando a Ubicuos.com

Submit your linkClose