2011-11-17 27 views
5

El método FormBuilder#label (see docs) devuelve una etiqueta <label> para el atributo dado. Si el usuario no proporciona texto para la etiqueta, la biblioteca i18n se usa para realizar una búsqueda. El orden de los cheques es:Obtener texto de etiqueta internacionalizado sin etiqueta envoltorio de etiqueta

  1. helpers.label.object.method
  2. object.class.human_attribute_name(method_name)
  3. method_name.humanize

¿Hay un método de API en cualquier lugar que realiza una búsqueda similar, pero no ajusta la salida en una etiqueta <label>? De lo contrario, ¿cuál es la mejor manera de quitar la etiqueta <label> de la etiqueta devuelta por FormBuilder#label sin eliminar ninguna otra etiqueta html que pueda contener la cadena internacionalizada?

Respuesta

0

Por el momento, tengo el siguiente código que elimina la fuerza bruta de las etiquetas de las etiquetas. Buscando mejores soluciones ...

label(attribute,text).gsub(/^<label(.*?)>/,'').gsub(/<\/label>$/,'')

+0

no ver ninguno, voy a aceptar esto. –

0

Sí, puede utilizar Class.human_attribute_name(attribute), por ejemplo:

Person.human_attribute_name("first_name") # => "First name" 
# you can also use :first_name 

Source

+2

Eso solo es exacto si quiere usar el nombre del atributo como etiqueta. –

Cuestiones relacionadas