Dado que desde que cambiamos el aspecto de nuestra aplicacíón recibimos decenas de visitas diarias, deseamos instalar un contador para ver de dónde viene la gente (ejem, lo de que deseamos poner un contador es cierto, lo de que recibimos visitas es una pequeña exageración). En esto de los contadores los hay para todos los gustos, desde los todopoderosos contadores de Google Analytics hasta los de Nedstat que tienen la simpática costumbre de meter publicidad intrusiva en la web que los incluye. También existen contadores basados en scripts PHP que se instalan en nuestro propio servidor, como Mint e incluso ya existe un contador basado en Rails, Weed. Nosotros optaremos por una solución más tradicional: Statcounter
Una solución rápida
Con Statcounter la cosa es muy sencilla, tras darnos de alta y configurar nuestro sitio web, nos proporcionan un fragmento de código mezcla de Javascript y HTML que debemos incluir en nuestra página. La primera aproximación es incluir este código directamente en nuestra plantilla de aplicación (app/views/layouts/application.rhtml).
Esta solución tiene dos inconvenientes: el primero es que el fragmento de código es relativamente largo y si lo incluimos en nuestra plantilla principal ésta se complica bastante. El segundo inconveniente es más conceptual: el contador no aporta nada a nuestra aplicación, debería estar fuera de la plantilla principal y, a ser posible, en un sitio apartado, lejos del resto de cosas.
Y además, no me serviría de ejemplo para lo que viene a continuación.
Introducción a los Parciales
Los parciales (partials) son fragmentos de .rhtml (es decir, HTML con Ruby embebido) que pueden ser incluidos desde otra vista. Los únicos requisitos son dos: que el nombre del fichero .rhtml donde guardemos el parcial empiece por ’_’ y que incluyamos el parcial desde nuestra vista principal usando <%= render(:partial => “miparcial.rhtml”) %>.
Por defecto, Rails supone que los parciales viven en el mismo directorio de la vista del controlador que los incluye (app/views/
Manos a la obra
Simplemente creamos el fichero app/views/shared/_statcounter.rhtml , y pegamos en él el fragmento de código de Statcounter para nuestra web. Luego, en app/views/layouts/application.rhtml añadimos en el lugar adecuado
<%= render(:partial => "shared/statcounter") %>
Y no tenemos que hacer nada más. Teneis la nueva versión aquí y el código fuente, aquí
Más sobre los parciales
La utilidad de los parciales va más allá de incluir fragmentos de HTML en nuestra aplicación, como hemos hecho hoy. De hecho, lo más interesante de los parciales es que, al llevar Ruby embebido, pueden recibir objetos de nuestra aplicación y manipularlos.
Por ejemplo, podríamos tener un parcial para mostrar una lista de la compra de nuestra aplicación, que recibiese los elementos del carrito desde la vista de un controlador y que tuviese código Ruby para, por ejemplo, sumar el total de los elementos para mostrar el precio, con IVA o sin IVA según alguna variable escogida por el usuario, algo así como
<%= render(:partial => 'carrito',
:object => @articulos,
:locals => { :con_iva => @mostrar_iva }) %>
(En el hash locals podemos definir las variables locales que serán visibles por el parcial)


Sorry, comments are closed for this article.