2012-05-23 22 views
14

Koleksiyon öğeleri için etiket kullanmak istiyorum (örneğin, çevirileri). simple_form koleksiyon etiketleri

= 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') 

Yukarıda label_method için kullanmak ne anlamaya çalışıyorum. map {|s| t("client.#{s}")}'daki çevirilere eşlemek için label_method'a sahip olmak isterim. Zaten bir etiket yöntemi yoksa

cevap

41

, size

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

Mükemmel istediğiniz sonucu almak için bir lambda geçebilir, teşekkürler! İlk başta neyi özlediğimi belirtmeye değer: dize etrafındaki çift tırnak işaretine ('' ') dönün böylece' # {obj} 'yerine koy. –

+0

Her koleksiyon öğesinden önce bir HTML etiketi eklemem gerekiyordu (https://stackoverflow.com/questions/47758782/how-do-you-add-a-tag-before-radio-button-in-simple-form) ve bu çözüm benim için de çok yardımcı oldu . –