Mi pregunta es similar a esta, pero para una aplicación Rails.
Tengo un formulario con algunos botones de opción y me gustaría asociar etiquetas con ellos. El label
asistente de formulario solo toma un campo de formulario como parámetro, pero en este caso tengo varios botones de opción para un solo campo de formulario. La única forma en que veo hacerlo es crear manualmente una etiqueta, codificando la identificación que se genera automáticamente para el botón de opción. ¿Alguien sabe de una mejor manera de hacerlo?
Por ejemplo:
<% form_for(@message) do |f| %>
<%= label :contactmethod %>
<%= f.radio_button :contactmethod, 'email', :checked => true %> Email
<%= f.radio_button :contactmethod, 'sms' %> SMS
<% end %>
Esto genera algo como:
<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
Lo que quiero:
<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
opción af.label
hará lo mismo. por ej<%= f.label :contactmethod, 'SMS', :value => 'sms' %>
. Esto establece el atributo "for" de la etiqueta de etiqueta correctamente, lo que hace que al hacer clic en la etiqueta se seleccione el botón de opción apropiado. En la respuesta anterior, simplemente usar ellabel
ayudante hará que el atributo "for" sea incorrecto cuando se cree el botón de opción con FormBuilder