tipos sirven que pasos para los hacer formularios formulario form etiquetas crear componentes codigos atributos ruby-on-rails forms

ruby on rails - sirven - Etiquetas para botones de radio en forma de rieles



pasos para crear formularios en html (3)

Al pasar la opción :value a f.label se asegurará de que la etiqueta de etiqueta for atributo sea la misma que la identificación del radio_button correspondiente radio_button

<% form_for(@message) do |f| %> <%= f.radio_button :contactmethod, ''email'' %> <%= f.label :contactmethod, ''Email'', :value => ''email'' %> <%= f.radio_button :contactmethod, ''sms'' %> <%= f.label :contactmethod, ''SMS'', :value => ''sms'' %> <% end %>

Ver la ActionView::Helpers::FormHelper#label

la opción: valor, que está diseñada para las etiquetas de destino para etiquetas de radio_button

Mi pregunta es similar a esta pero para una aplicación de Rails.

Tengo un formulario con algunos botones de opción y me gustaría asociar etiquetas con ellos. La label formulario de ayuda 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 que veo de hacerlo es crear manualmente una etiqueta, codificando con fuerza 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>


Si desea el nombre_objeto prefijado a cualquier ID, debe llamar a los ayudantes de formulario en el objeto de formulario:

- form_for(@message) do |f| = f.label :email

Esto también asegura que los datos enviados se almacenen en la memoria en caso de que haya errores de validación, etc.

Si no puede llamar al método de ayuda de formulario en el objeto de formulario, por ejemplo, si está utilizando una etiqueta auxiliar (radio_button_tag, etc.) puede interpolar el nombre usando:

= radio_button_tag "#{f.object_name}[email]", @message.email

En este caso, deberá especificar el valor manualmente para preservar los envíos.


<% form_for(@message) do |f| %> <%= f.radio_button :contactmethod, ''email'', :checked => true %> <%= label :contactmethod_email, ''Email'' %> <%= f.radio_button :contactmethod, ''sms'' %> <%= label :contactmethod_sms, ''SMS'' %> <% end %>