Warum generiert der Helfer check_box zwei Checkboxen, eine versteckte?

7

dieser Code:     = form_fo: store_products do | f |       = f.check_box: track_inventory

erstellt diesen HTML-Code:

%Vor%

Was ist der Grund für das erste versteckte Element?

    
everett1992 18.07.2012, 21:54
quelle

1 Antwort

21

Die HTML-Spezifikation besagt, dass nicht markierte Kontrollkästchen nicht von Webbrowsern gesendet werden sollten. Dies bedeutet, dass rails, wenn es nicht markiert ist, keine Aufzeichnung darüber erhält, ob das Kontrollkästchen auf dem Formular deaktiviert wurde. Dies wäre beispielsweise wichtig, wenn der Benutzer einen Datensatz bearbeitet, bei dem das Kontrollkästchen zuvor aktiviert war, und sie entschieden haben, es zu deaktivieren - Rails weiß nicht, dieses Attribut zu aktualisieren.

Das versteckte Feld hat den gleichen Namen wie das Kontrollkästchen. Wenn das Kontrollkästchen nicht gesendet wird, wird stattdessen das Feld hidden_ ​​(mit dem Wert '0', dh nicht markiert) gesendet. Auf diese Weise erhalten Schienen immer ein Signal, ob das Kontrollkästchen aktiviert oder deaktiviert wurde.

Weitere Informationen zu dieser Frage erhalten Sie unter APIDock

    
Rob d'Apice 19.07.2012, 00:33
quelle

Tags und Links