2009-04-29 11 views

Respuesta

7

En tales casos, uso custom_err_msg plugin. Ya que se instala se puede dar mensajes de error como este:

validates_presence_of :sui, :message => '^SUI is required' 

Cuando se pone^en el comienzo y luego Carriles no ponga nombre del campo.

EDIT: Hay otro complemento i18n_label utilizado para las traducciones, pero con él puede de una manera muy simple reemplazar el nombre de su campo con algo más bonito (en la página del complemento hay un ejemplo). Sustituirá el nombre en:

<%= f.label :sui %> 
YourModel.human_attribute_name "sui" 

y en los mensajes de error.

+0

FANTASTIC tip! ¿Hay alguna manera de poner el valor que está causando problemas en el mensaje? "# {sui} se toma" no funcionará, ya que se evalúa en el momento equivocado. –

+0

Espero que alguien tenga una sugerencia que funcione para algo más que mensajes de error, pero me gusta el complemento. –

2

Puede hacerlo configurando ActiveSupport::Inflector, que proporciona el método titleize. Simplemente defina su propio inflections en un inicializador.

# config/initializers/inflections.rb 
ActiveSupport::Inflector.inflections do |inflect| 
    inflect.acronym 'SUI' 
end 

Reinicia tu aplicación para recoger el cambio. Ahora titleize sabe cómo manejar "SUI". El fuego de una consola de rieles para comprobarlo:

> "sui".titleize 
=> "SUI" 

Consulte los documentos relacionados para más cosas interesantes que puede hacer con inflexiones.

Cuestiones relacionadas