text_field rails number multiple for fields check_box_tag ruby-on-rails checkbox

ruby on rails - rails - ¿Cómo le digo al método check_box que NO agregue un check_box oculto para el valor ''desmarcado''?



select rails helper (3)

Desde Rails 3.2, el campo oculto no se mostrará si el argumento unchecked_value evalúa como false .

Ejemplo: f.check_box :your_field, {}, checked_value, false

Ver la fuente Rails: 3.2 , 4.1

Estoy usando Rails 2.3.4, que cuando llamas a .check_box en el objeto ''f'' en form_for, haces una entrada de casilla de verificación visible para el valor ''checked'' y una casilla de verificación oculta para el valor ''desmarcado'': http://railsbrain.com/api/rails-2.3.2/doc/index.html?a=M002434&name=check_box

El problema con esto es que tengo validates_acceptance_of validation en check_box, y si no está marcada, obtengo un div field_with_errors div alrededor de la casilla de verificación visible Y la casilla de verificación oculta, para que el mensaje de error aparezca dos veces.

En este caso, no quiero que se pase un valor en el caso ''no marcado'', así que no quiero que los rieles agreguen la casilla de verificación oculta; esto (desactivar la casilla de verificación oculta) resolvería mi problema. Sin embargo, no puedo imaginar cómo decirle que no agregue la casilla de verificación oculta. ¿Alguien me puede decir?

Sé que podría evitar esto haciendo check_box_tag, que no agrega el casillero oculto de casilla "no marcada", pero entonces no consigo cosas de field_with_errors alrededor de la casilla de verificación si no está marcada. Dispensar con el campo oculto parece ser la solución más limpia.

Gracias - max


En Rails 4 puedes usar include_hidden: false

ejemplo f.check_box :some_field, include_hidden: false


use <%= check_box_tag "your_model[your_field]" %>

f.check_box siempre le da un campo oculto.