2010-10-31 9 views
6

Quiero configurar una cookie para que caduque en 1 año si la casilla "recordarme" está marcada.en rieles, ¿Cuál es el valor devuelto por una casilla de verificación?

Tengo un formulario de entrada casilla como:

<%= check_box_tag 'remember', '', false, :class => 'checkbox' %> 

¿Cuál será el valor cuando se registró?

¿Será cierto/falso o verificado o 1 o? Establecí el valor en '' en el ayudante.

Respuesta

-3

que obtiene en su acción los parametros

params['remember'] 

Si Si comprobar que tiene los parametros con falsa como valor. Si no es cheque, no tiene parámetros enviados a su acción.

7

En la documentación de la API rieles Tiene esta útil explicación de los parámetros que faltan y el campo oculto solución alternativa:

http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-check_box

check_box (OBJECT_NAME, método, opciones = {}, checked_value = "1" , unchecked_value = "0")

Devuelve una etiqueta de casilla de verificación adaptada para acceder a un atributo específico (identificado por método) en un objeto asignado a la plantilla (identificado por el objeto). Este objeto debe ser un objeto instancia (@object) y no un objeto local. Se pretende que el método devuelva un número entero y, si ese entero está por encima de cero, la casilla de verificación está marcada. Las opciones adicionales en la etiqueta de entrada se pueden pasar como un hash con opciones. Checked_value se establece de manera predeterminada en 1, mientras que el valor predeterminado unchecked_value se establece en 0, que es conveniente para valores booleanos. Gotcha

La especificación HTML dice que las casillas de verificación no marcadas no son correctas, y por lo tanto los navegadores web no las envían. Lamentablemente, esto introduce un resultado negativo: si un modelo de factura tiene un indicador de pago, y en la forma en que se edita una factura pagada, el usuario desmarca su casilla de verificación, no se envía ningún parámetro pagado. Por lo tanto, cualquier lenguaje de masas como la asignación

@ invoice.update_attributes (params [: Factura])

no se actualizaba la bandera.

Para evitar esto, el ayudante genera un campo oculto auxiliar antes de la casilla de verificación. El campo oculto tiene el mismo nombre y sus atributos imitan una casilla de verificación sin marcar.

De esta manera, el cliente envía solo el campo oculto (que representa que la casilla de verificación está desmarcada), o ambos campos. Dado que la especificación HTML dice que los pares de clave/valor deben enviarse en el mismo orden en que aparecen en el formulario, y la extracción de parámetros obtiene la última aparición de cualquier clave repetida en la cadena de consulta, eso funciona para formularios ordinarios.

9

La casilla de verificación devolverá 0 o 1.

no son comparables con false y true, ya que esto puede causarle problemas, ya que es 0true en Ruby.

+0

No sé por qué esta respuesta se redujo, ya que responde a la pregunta, pero aquí hay algunas fuentes: http: // stackoverflow.com/questions/372652/what-are-the-ruby-gotchas-a-newbie-should-be-warned-about http://railsforum.com/viewtopic.php?id=27353 – chech

Cuestiones relacionadas