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í.

Quizá te interese :

Acerca del autor:

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

-->