Skip to content


Nube de tags

El otro día cuando hablábamos de poder taggear modelos, os puse el ejemplo de las nubes de tags que vemos en innumerables ocasiones, sin embargo sólo avanzamos hasta disponer de un modelo tageable.

Ahora os voy a mostrar cómo se podría construir la nube de tags partiendo de lo que hicimos.

Lo primero, es que nuestra aplicación necesita utilizar un método llamado tag_cloud, que es el que se va a encargar de pintar la nube de tags, para ello hacemos que nuestro AplicationHelper incluya el helper que contiene el método:

module ApplicationHelper
  include TagsHelper
end

Nos basta con añadir esto al helper del controlador concreto, pero dada la implementación del plugin creo que querréis crear más nubes de tags para otros modelos, por lo que he preferido tener disponible estos métodos para toda la aplicación.

Ahora Necesitamos cargar en nuestro controlador lo que va a ser mostrado en la vista:

@tags = Entry.tag_counts

Y por último nos vamos a la vista y añadimos la nube de tags:

<% tag_cloud @tags, %w(css1 css2 css3 css4 css5) do |tag, css_class| %>
    <%= link_to tag.name, { :action => :tag, :id => tag.name }, :class => css_class %>
  <% end %>

para que esta pueda tener el efecto adecuado, necestitáis definir los siguiente estilos en la vista:

.css1 { font-size: 1.0em; }
.css2 { font-size: 1.4em; }
.css3 { font-size: 1.6em; }
.css4 { font-size: 1.8em; }
.css5 { font-size: 2em; }

estos deberíais adaptarlos en tamaño según vuestro diseño, ¿sencillo verdad?

Posted in Proyectos, RubyOnRails, Tips & Tricks.

Tagged with , , .

You might also like

Cómo añadir tags a nuestros modelos Estoy seguro que más de una vez habéis visto nubes de tags en variedad de sitios webs, a la vez que...
Ruby recipe: comprobar si un array tiene un objeto El otro día andaba buscando cómo determinar si un array/colección contiene un objeto determinado,...
Official announcement of Belegost Poco tiempo hace, que empezé a ver las posibilidades que ofrecía Ruby on Rails, el mismo tiempo que...
Ruby on Rails Había leido parte del libro Beyond Java, la parte en la que habla de Ruby y bastó un comentario para...
Grab This Widget

2 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. Jaime Iniesta says

    Yo también soy un gran fan de acts_as_taggable_on_steroids. Sobre la tag cloud, mencionaría que conviene poner un límite porque si tenemos muchas tarda lo suyo en generarse. Algo así:

    Model.tag_counts :limit => 100

  2. Jesús Navarrete says

    Gracias por la anotación, hasta ahora no había llegado a tener un gran número de tags, aunque en una aplicación que estoy haciendo en estos momentos, veo que esto me va a resultar bastante útil.



Some HTML is OK

or, reply to this post via trackback.