Câu hỏi của tôi tương tự như câu hỏi này nhưng đối với ứng dụng Rails.
Tôi có một biểu mẫu với một số nút radio và muốn liên kết nhãn với chúng. Trình label
trợ giúp biểu mẫu chỉ lấy một trường biểu mẫu làm tham số, nhưng trong trường hợp này tôi có nhiều nút radio cho một trường biểu mẫu. Cách duy nhất tôi thấy để làm điều đó là tạo nhãn thủ công, mã hóa cứng ID được tạo tự động cho nút radio. Có ai biết một cách tốt hơn để làm điều đó?
Ví dụ:
<% form_for(@message) do |f| %>
<%= label :contactmethod %>
<%= f.radio_button :contactmethod, 'email', :checked => true %> Email
<%= f.radio_button :contactmethod, 'sms' %> SMS
<% end %>
Điều này tạo ra một cái gì đó như:
<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
Những gì tôi muốn:
<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
tùy chọnf.label
sẽ làm điều tương tự. ví dụ<%= f.label :contactmethod, 'SMS', :value => 'sms' %>
. Điều này đặt thuộc tính "cho" của thẻ nhãn chính xác, làm cho việc nhấp vào nhãn chọn nút radio thích hợp. Trong câu trả lời ở trên, chỉ cần sử dụng trìnhlabel
trợ giúp sẽ khiến thuộc tính "for" không chính xác khi nút radio được tạo bằng FormBuilder