Hola abro este nuevo hilo para tratar el tema de las etiquetas en rails.
Lo primero que tenemos que tener en cuenta es que existen varios plugins
que abordan esta temática aunque no he podido ver ninguno ya
implementado (algo que me gustarÃa, asà que estoy abierto a que
cualquier usuario se preste a comentar alguna pagina en donde este
corriendo alguno de los plugins que mencionaremos).
Para empezar comentare las distintas opciones que he encontrado tras
visitar una pagina muy interesante y que hasta ayer era desconocida para
mi. Se trata de http://ruby-toolbox.com/. Como veréis si la visitáis
tiene un apartado dedicado a Rails Tagging y en el comentan los
disitintos plugins que existen sobre la temática. Los mas destacados
son: acts-as-taggable-on, acts_as_taggable_on_steroids y is_taggable. En
un principio parece que el acts-as-taggable-on es el mas popular, pero
curiosamente navegando por la web los mejores tutoriales y referencias
que he encontrado han sido sobre el acts_as_taggable_on_steroids.
Encontré también el libro Wrox Professional Ruby on Rails (una verisión
incompleta colgada por google), cuyo capitulo 5 dedica una sección a la
instalación e implementación del mismo.
De momento como podéis ver voy a centrarme en el
acts_as_taggable_on_steroids, porque veo que cumple con creces nuestras
expectativas y porque asà dispongo de unas referencias mas amplias. Como
he comentado antes nos interesarÃa ver algún ejemplo real del plugin
funcionando y por supuesto si pensáis que existe alguna otra alternativa
mejor estamos abiertos a todo tipo de comentarios. El hilo lo abrimos
para comentar las dudas que nos surjan y postear nuestras experiencias
para futuras consultas sobre la temática.
S2
On Martes, 2 de Junio de 2009 09:54:13 Jose vicente Ribera pellicer
escribió:
tiene un apartado dedicado a Rails Tagging y en el comentan los
acts_as_taggable_on_steroids, porque veo que cumple con creces nuestras
expectativas y porque asà dispongo de unas referencias mas amplias. Como
he comentado antes nos interesarÃa ver algún ejemplo real del plugin
funcionando y por supuesto si pensáis que existe alguna otra alternativa
mejor estamos abiertos a todo tipo de comentarios. El hilo lo abrimos
para comentar las dudas que nos surjan y postear nuestras experiencias
para futuras consultas sobre la temática.
S2
Por lo que he visto todos funcionan de forma similar. Creo que el codigo
escrito para acts_as_taggable_on_steroids funciona en
acts_as_taggable_on, a
la inversa depende de lo que uses porque permite usar tags en varios
contextos, cosa que no permite el steroids.
Juan G. galisteo wrote:
Si prefieres una alternativa que no de positivo…
http://giraffesoft.com/blog/2009/02/18/floss-week-is-taggable-tagging-that-isnt-on-drugs.html
http://github.com/giraffesoft/is_taggable/tree/master
Eso sÃ, no da positivo ni muchas otras cosas. Muy simple.
Gracias por las respuestas. De momento nos centramos en el on_steroids.
Lastima que no podamos ver ninguno en acción :(.
S2
Hola, tan solo comentaros que la implementacion de las etiquetas ha
salido muy bien. Os explico un poco como fue:
En el modelo que queriamos usar el pluggin ( en mi caso n el de los
videos) escribimos: acts_as_rateable
En la vista del video en cuestion: (este trozo es un partial, pero
resulta bastante comprensible, le pasamos la lista de tags si esta es
mayor que cero. Los tags son links a una vista que muestra videos que
contienen el mismo tag:
<%= ‘Temas:’ if contenido.tag_list.size!=0 -%>
<%# Convierto el array de texto en array de enlaces, y luego los saca
separados por comas %>
<%- links = [] -%>
<%- contenido.tag_list.each {|tag| links << link_to(tag,
etiqueta_path(tag))} -%>
<%= links.join(", ") %>
Dejo una funcion que implementamos para poder cambiar las
etiquetas, por si a alguine le puede resultar interesante:
#Se encarga de cambiar una etiqueta que este mal introducida por la
correcta
def mover_tag
nueva = params[:etiquetas][:nueva_etiqueta]
tag_nueva = Tag.first(:conditions => [ "name = ? ", nueva ])
antigua = Tag.first(:conditions => [ "name = ? ", params[:id] ])
if tag_nueva
viejos=Taggin.all(:conditions => "tag_id = #{antiguo.id} ")
viejos.each do |viejo|
viejo.update_attribute("tag_id", tag_nueva.id)
end
antigua.delete
else
#cambia solo el nombre del tag, lo demas estara bien
antigua.update_attribute("name", nueva)
end
redirect_to etiqueta_path(nueva)
end
Bueno espero que pueda servir de ayuda a cualquiera opte por usar las
etiquetas.
Un salu2!!
Jose vicente Ribera pellicer wrote:
No es el tema que se estaba tratando, pero sólo comentar que es
recomendable
mantener las vistas lo más limpias que sea posible, lo que se consigue
moviendo
código a modelos o a helpers (según el caso). De cualquier modo,
quedaría másidiomático y compacto si usas map/collect:
<% unless contenido.tag_list.empty? %>
Temas: <%= contenido.tag_list.collect { |tag| link_to(…) }.join(",
") %>
<% end %>
Si este fragmento es recurrente en tus vistas, lo sacas a un helper y
listo:
<%= links_to_tags(contenido) %>
saludos!
arnau
Un screencast que nos ha resultado muy interesante es el que podemos
encontrar en rubyplus:
http://www.rubyplus.org/episodes/26-SEO-for-Rails-app-using-Acts-as-Taggable-on-Steroids-and-Meta-Tags-Plugins.html
Como veis trabajan con steroids y nos comentan tecnicas de
posicionamiento utilizando las etiquetas que generamos.
S2
Thanks!! Me parece perfecto cualquier comentario que sea para mejorar.