2012-05-23 22 views
14

Quiero usar etiquetas para artículos de colección (por ejemplo, sus traducciones).etiquetas de colección simple_form

= simple_form_for(@client) do |f| 
    = f.error_notification 
    .form-inputs 
     = f.input :name, label: t('client.name') 
     = f.input :level, collection: ['a', 'b', 'c'], 
     label_method: ???? 
     label: t('client.level') 
    .form-actions 
     = f.button :submit, value: t('client.submit') 

estoy tratando de averiguar, lo que va a utilizar para label_method anteriormente. Me gustaría que label_method se correlacione con las traducciones como en map {|s| t("client.#{s}")}.

Respuesta

41

Si aún no dispone de un método de etiqueta, puede pasar una lambda para obtener el resultado que desea

label_method: ->(obj){ t("client.#{obj}") } 
+0

Perfecto, gracias! Vale la pena señalar lo que me perdí al principio: cambiar a comillas dobles ('" ') alrededor de la cadena para que haga la sustitución' # {obj} '. –

+0

Necesitaba [agregar una etiqueta HTML antes de cada elemento de colección] (https://stackoverflow.com/questions/47758782/how-do-you-add-a-tag-before-each-radio-button-in-simple-form) y esta solución también me ha sido de gran ayuda . –

Cuestiones relacionadas