2011-02-07 21 views
16

Tengo un archivo de datos de nombres y direcciones ... todos ellos son mayúsculas.cómo usar ruby ​​/ rails para convertir todas las mayúsculas a letras mayúsculas adecuadas, descansar en minúsculas?

¿Cómo puedo convertirlo para hacer correctamente la primera letra mayúscula y el resto minúsculas (excepto estados, por ejemplo)?

Probablemente podría aislar los estados para no pasar por el análisis sintáctico, pero para el resto, ¿cómo podría hacer esto para una aplicación de ruby ​​on rails?

+0

Recuerde que esto no es algo razonable de hacer a menos que también tenga información cultural para cada nombre (y eso es muy, muy poco probable). –

Respuesta

26

Si puedes separar los estados a cabo, como se dice, es fácil:

my_address_string.titlecase 

que va en mayúscula la primera letra de cada palabra (incluyendo algunos prefiero no fue así, como " un "o" el ", pero oye ...) y descapitalizar el resto. Suena como lo que quieres.

+0

dulce checándolo ahora mismo! – Angela

+0

@Xavier ... hmmm ... no funcionó, todo se mantuvo en mayúsculas .....? – Angela

+0

@ Angela realmente? Es extraño ... ¿Qué versión de Rails estás ejecutando? Además, ¿funciona en script/consola? Para mí, ejecutar algo genérico como '" TEST PHRASE ".titlecase' en script/console funciona perfectamente ... –

1

La respuesta de Xavier me funciona en Rails 2.3.5 environment. O puede probar esto

my_address_string.downcase.gsub(/(\A|\s)\w/){ |letter| letter.upcase } 
+0

sorry..it debe ser – rubyprince

+0

my_address_string.downcase.gsub (/ (\ A | \ s) \ w /) {| carta | letter.upcase} – rubyprince

Cuestiones relacionadas