2008/10/15 Andrés gutiérrez [email protected]:
off-topic. Pero se está hablando de redefinir #to_param y en cinco lineas
dar solucion al problema. SerÃa posible que alguien expusiese esta solución
al completo. Asi yo y el resto de gente que leemos este hilo podremos hacer
las url tan guays como vosotros. Esto que pido creo que es algo razonable,
que no es algo que venga en uno de esos tuto de haz tu app en 15min. En fin,
sobretodo gracias
Yep, por ejemplo
class Customer < AR::Base
def to_param
“#{id}-#{MyAppUtils.normalize_for_url(name)}”
end
end
normalize_for_url es un metodo propio que normaliza la cadena para que
quede limpia en una URL:
def self.normalize(str)
return ‘’ if str.nil?
n = str.chars.downcase.strip.to_s
n.gsub!(/[à áâãäåÄă]/, ‘a’)
n.gsub!(/æ/, ‘ae’)
n.gsub!(/[ÄÄ‘]/, ‘d’)
n.gsub!(/[çćÄĉċ]/, ‘c’)
n.gsub!(/[èéêëēęěĕė]/, ‘e’)
n.gsub!(/Æ’/, ‘f’)
n.gsub!(/[Äğġģ]/, ‘g’)
n.gsub!(/[ĥħ]/, ‘h’)
n.gsub!(/[ììÃîïīĩÄ]/, ‘i’)
n.gsub!(/[įıijĵ]/, ‘j’)
n.gsub!(/[ķĸ]/, ‘k’)
n.gsub!(/[łľĺļŀ]/, ‘l’)
n.gsub!(/[ñńňņʼnŋ]/, ‘n’)
n.gsub!(/[òóôõöøÅÅ‘ÅÅ]/, ‘o’)
n.gsub!(/Å“/, ‘oe’)
n.gsub!(/Ä…/, ‘q’)
n.gsub!(/[ŕřŗ]/, ‘r’)
n.gsub!(/[śšşÅÈ™]/, ‘s’)
n.gsub!(/[ťţŧț]/, ‘t’)
n.gsub!(/[ùúûüūůűÅũų]/, ‘u’)
n.gsub!(/ŵ/, ‘w’)
n.gsub!(/[ýÿŷ]/, ‘y’)
n.gsub!(/[žżź]/, ‘z’)
n.gsub!(/\s+/, ’ ‘)
n.delete!(’^ a-z0-9_/\-.')
n
end
def self.normalize_for_url(str)
# normalize and convert whitespace, slashes, and dots to hyphens
normalize(str).tr(‘^a-z0-9_’, ‘-’)
end