Creación de slugs de URL para etiquetas con actos_as_taggable_on
Me gustaría crear slugs de URL para etiquetas administradas por la gema act_as_taggable_on. Por ejemplo, en lugar de URL comohttp://myapp.com/tags/5, Me gustaría tenerhttp://myapp.com/tags/my-tag (donde 'mi etiqueta' es el nombre único de la etiqueta).
En los modelos que creo yo, generalmente hago esto anulando el método to_param del modelo y creando un campo "slug" en el modelo para guardar el resultado del nuevo método to_param. Intenté hacer esto con el modelo Tag de ActsAsTaggableOn, pero no funciona.
De lo contrario, puedo anular cosas en la clase tag.rb de ActsAsTaggableOn de la siguiente manera:
# Overwrite tag class
ActsAsTaggableOn::Tag.class_eval do
def name
n = read_attribute(:name).split
n.each {|word| word.capitalize!}.join(" ")
end
end
Sin embargo, si intento anular el método to_param en ese mismo bloque con una definición de método como:
def to_param
name.parameterize
end
Rails sigue generando y responde a rutas con ID enteros en lugar del nombre parametrizado. De hecho en la consola si intento algo como
ActsAsTaggableOn::Tag.find(1).to_param
Se devuelve el ID entero, en lugar del resultado del método anulado to_param.
Prefiero no bifurcar la gema y personalizarla si hay alguna forma de hacerlo con mi propio código de aplicación. Gracias.