Pertanyaan saya mirip dengan yang satu ini tetapi untuk aplikasi Rails.
Saya memiliki formulir dengan beberapa tombol radio, dan ingin menghubungkan label dengan mereka. The labelbentuk helper hanya membutuhkan formulir isian sebagai parameter, tetapi dalam hal ini saya memiliki beberapa tombol radio untuk bidang bentuk tunggal. Satu-satunya cara yang saya lihat untuk melakukannya adalah secara manual membuat label, mengkodekan keras ID yang dihasilkan secara otomatis untuk tombol radio. Adakah yang tahu cara yang lebih baik untuk melakukannya?
Sebagai contoh:
<% form_for(@message) do |f| %>
<%= label :contactmethod %>
<%= f.radio_button :contactmethod, 'email', :checked => true %> Email
<%= f.radio_button :contactmethod, 'sms' %> SMS
<% end %>
Ini menghasilkan sesuatu seperti:
<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
Apa yang saya inginkan:
<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>
:valueopsi untukf.labelakan melakukan hal yang sama. mis<%= f.label :contactmethod, 'SMS', :value => 'sms' %>. Ini mengatur atribut "untuk" dari label label dengan benar, yang membuat mengklik label memilih tombol radio yang sesuai. Dalam jawaban di atas, hanya menggunakanlabelhelper akan menyebabkan atribut "for" salah ketika tombol radio dibuat dengan FormBuilder