2011-11-17 11 views
5

FormBuilder#label विधि (see docs) के बिना अंतर्राष्ट्रीयकृत लेबल टेक्स्ट प्राप्त करें, दिए गए गुण के लिए <label> टैग देता है। यदि उपयोगकर्ता लेबल के लिए पाठ की आपूर्ति नहीं करता है, तो i18n लाइब्रेरी का उपयोग लुकअप करने के लिए किया जाता है। चेकों का आदेश है:लेबल टैग रैपर

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

वहाँ कहीं भी API पद्धति है कि एक समान देखने करता है, लेकिन एक <label> टैग में उत्पादन लपेट नहीं करता है? यदि नहीं, तो FormBuilder#label द्वारा दिए गए टैग से <label> टैग को स्ट्रिप करने का सबसे अच्छा तरीका क्या है जो अंतर्राष्ट्रीयकृत स्ट्रिंग में मौजूद किसी भी अन्य HTML टैग को अलग किए बिना।

उत्तर

0

समय के लिए, मेरे पास निम्न कोड है जो ब्रूट बल लेबल टैग को अलग करता है। बेहतर समाधान ढूंढ रहा है ...

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

+0

देखकर कोई नहीं, मैं इस को स्वीकार करेंगे। –

0

हाँ, आप Class.human_attribute_name(attribute), पूर्व का उपयोग कर सकते हैं:

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

Source

+2

यह केवल तभी सटीक है जब आप विशेषता नाम को लेबल के रूप में उपयोग करना चाहते हैं। –

संबंधित मुद्दे