Meine Frage ist ähnlich wie diese, aber für eine Rails-App.
Ich habe ein Formular mit einigen Optionsfeldern und möchte ihnen Beschriftungen zuordnen. Der labelFormular-Helfer verwendet nur ein Formularfeld als Parameter. In diesem Fall habe ich jedoch mehrere Optionsfelder für ein einzelnes Formularfeld. Die einzige Möglichkeit, die ich sehe, besteht darin, manuell ein Etikett zu erstellen und die ID, die automatisch für das Optionsfeld generiert wird, fest zu codieren. Kennt jemand einen besseren Weg, dies zu tun?
Beispielsweise:
<% form_for(@message) do |f| %>
<%= label :contactmethod %>
<%= f.radio_button :contactmethod, 'email', :checked => true %> Email
<%= f.radio_button :contactmethod, 'sms' %> SMS
<% end %>
Dies erzeugt so etwas wie:
<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
Was ich möchte:
<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>
:valueOption an übergebenf.label, tun Sie dasselbe. zB<%= f.label :contactmethod, 'SMS', :value => 'sms' %>. Dadurch wird das Attribut "für" des Etiketten-Tags korrekt festgelegt. Durch Klicken auf das Etikett wird das entsprechende Optionsfeld ausgewählt. In der obigen Antwort führt die einfache Verwendung deslabelHilfsprogramms dazu, dass das Attribut "für" falsch ist, wenn das Optionsfeld mit FormBuilder