ahora me salta la duda como puedo meter ahi la ‘ñ’ y ‘LL’ y ‘CH’.
a mí lo más limpio me parece montar el array entero por cada idioma que
quiera soportar, a no ser que haya alguna librería que entienda de
collations (no conozco ninguna) por ahí y te lo dé resuelto
una opción para escribir menos es hacer algo como esto
(‘a’…‘z’).to_a.insert(3,‘ch’).insert(13,‘ll’).insert(16,‘ñ’)
partiendo del abecedario inglés, le metes los caracteres extras.
Ahora tienes en es_cl_abc un array con la collation correcta para ese
abecedario. Para otros idiomas sólo tendrías que cambiar la hash y poner
cada carácter y su posición relativa en la serie
<% [‘a’,‘b’,‘c’,‘ch’,‘d’,‘e’,‘f’,‘g’,‘h’,‘i’,‘j’,‘k’,‘l’,‘m’,‘n’,‘ñ’,‘o’,‘p’,‘q’,‘r’,‘s’,‘t’,‘u’,‘v’,‘w’,‘x’,‘y’,‘z’].each
do |l| %>
<%= link_to l, my_path(:id => l) %>
<% end %>
A mí también me parece la mejor solución crear el array a mano. Sólo comentar
que quedaría algo más compacto escrito
así:
letters = “a b c ch d…z”.split
o
letters = %w{a b c ch d … z}
Miguel, es una recomendación clásica el no usar “l” (letra ele) como nombre
de
variable, en algunas tipografías es indistinguible de “1” (número uno). Además,
siempre es aconsejable que las variables tengan un nombre más descriptivo,
incluso las locales de un bloque.