मेरा प्रश्न के समान है इस एक है, लेकिन एक रेल अनुप्रयोग के लिए।
मेरे पास कुछ रेडियो बटन के साथ एक फॉर्म है, और लेबल को उनके साथ जोड़ना चाहते हैं। labelप्रपत्र सहायक केवल एक पैरामीटर के रूप किसी फ़ॉर्म फ़ील्ड ले जाता है, लेकिन इस मामले में मैं एक ही रूप फ़ील्ड के लिए अनेक रेडियो बटन है। जिस तरह से मैं इसे करने के लिए देखता हूं वह मैन्युअल रूप से एक लेबल बनाने के लिए है, आईडी को कोड करना मुश्किल है जो रेडियो बटन के लिए ऑटो उत्पन्न होता है। क्या किसी को इसे करने का एक बेहतर तरीका पता है?
उदाहरण के लिए:
<% form_for(@message) do |f| %>
<%= label :contactmethod %>
<%= f.radio_button :contactmethod, 'email', :checked => true %> Email
<%= f.radio_button :contactmethod, 'sms' %> SMS
<% end %>
यह कुछ उत्पन्न करता है:
<label for="message_contactmethod">Contactmethod</label>
<input checked="checked" id="message_contactmethod_email" name="message[contactmethod]" value="email" type="radio"> Email
<input id="message_contactmethod_sms" name="message[contactmethod]" value="sms" type="radio"> SMS
मैं क्या चाहता हूँ:
<input checked="checked" id="message_contactmethod_email" name="message[contactmethod]" value="email" type="radio"><label for="message_contactmethod_email">Email</label>
<input id="message_contactmethod_sms" name="message[contactmethod]" value="sms" type="radio"> <label for="message_contactmethod_sms">SMS</label>
:valueविकल्प पारितf.labelकरने के लिए एक ही काम करेंगे। उदा<%= f.label :contactmethod, 'SMS', :value => 'sms' %>। यह लेबल टैग की "के लिए" विशेषता को सही ढंग से सेट करता है, जो लेबल पर क्लिक करके उपयुक्त रेडियो बटन का चयन करता है। ऊपर दिए गए उत्तर में, बसlabelसहायक का उपयोग करने पर "के लिए" विशेषता गलत हो जाएगी जब रेडियो बटन फॉर्मब्यूलर के साथ बनाया जाता है