5

Il metodo FormBuilder#label (see docs) restituisce un tag <label> per l'attributo specificato. Se l'utente non fornisce il testo per l'etichetta, la libreria i18n viene utilizzata per effettuare una ricerca. L'ordine dei controlli è:Ottieni il testo dell'etichetta internazionalizzato senza l'etichetta di etichetta dell'etichetta

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

Esiste un metodo API da nessuna parte che esegue una ricerca simile, ma non va a capo l'output in un tag <label>? In caso contrario, qual è il modo migliore per rimuovere il tag <label> dal tag restituito da FormBuilder#label senza rimuovere alcun ALTRO tag HTML che la stringa internazionalizzata potrebbe contenere.

risposta

0

Per il momento, ho il seguente codice che esegue il brute force stripping delle etichette delle etichette. Alla ricerca di soluzioni migliori ...

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

+0

Vedendo nessuno, io accettare questo. –

0

Sì, è possibile utilizzare Class.human_attribute_name(attribute), es:

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

Source

+2

Questo è accurato solo se si desidera utilizzare il nome dell'attributo come etichetta. –

Problemi correlati