2011-11-17 16 views
5

Metoda FormBuilder#label (see docs) zwraca znacznik <label> dla podanego atrybutu. Jeśli użytkownik nie dostarcza tekstu etykiety, biblioteka i18n jest używana do wyszukiwania. Kolejność kontroli jest:Uzyskaj międzynarodowy tekst etykiety bez opakowania znacznika etykiety

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

Czy istnieje metoda API gdziekolwiek, który wykonuje podobną odnośnika ale nie zawijać wyjście w <label> tag? Jeśli nie, jaki jest najlepszy sposób na usunięcie znacznika <label> ze znacznika zwróconego przez FormBuilder#label bez usuwania INNYCH znaczników html, które może zawierać internacjonalizowany ciąg.

Odpowiedz

0

Na razie mam następujący kod, który usuwa brute force z etykiet znaczników. Poszukiwania lepszych rozwiązań ...

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

+0

Widząc brak, będę zaakceptować. –

0

Tak, można użyć Class.human_attribute_name(attribute), ex:

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

Source

+2

To jest dokładne tylko wtedy, gdy chcesz użyć nazwy atrybutu jako etykiety. –

Powiązane problemy