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
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.