Мой вопрос похож на этот, но для приложения Rails.
У меня есть форма с некоторыми переключателями, и я хотел бы связать с ними ярлыки. 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' %>
. Это правильно устанавливает атрибут «for» тега label, что позволяет щелкнуть метку и выбрать соответствующий переключатель. В ответе выше простое использованиеlabel
помощника приведет к тому, что атрибут «for» будет неверным при создании переключателя с помощью FormBuilder