2011-01-14 13 views
0

Ich aktualisiere eine alte Rails 1-Anwendung auf Rails 2, und ich habe ein Problem mit der Handhabung von Kontrollkästchen. Der alte Code hat einen Aufruf und entsprechenden hidden_field_tag Aufruf für jedes Kontrollkästchen. Während dies zuvor funktioniert hat, erscheinen nach dem Upgrade alle Checkboxen im params-Hash als ihr ausgeblendeter Standardwert, unabhängig davon, ob sie überprüft wurden. Ich habe über die check_box Methode gelesen, und wie es langsam von Rails 1 zu 2 zu 3 in Bezug auf die Arbeit mit dem entsprechenden versteckten Feld geändert hat.Kontrollkästchen in Rails 1 vs. Rails 2

Gibt es Dokumentation darüber, wie sich das Kontrollkästchen in Rails 2 geändert hat, oder kann jemand erklären, warum der Rails 1-Ansatz nicht mehr funktioniert?

Bearbeiten: Nach mehr Forschung fand ich this. Es sieht so aus, als würde in Rails 2.2 die Parameterextraktion immer das erste Vorkommen eines gegebenen Schlüssels erhalten (also sollte das versteckte Feld zuletzt gehen), aber in Rails 2.3 erhält die Parameterextraktion immer das letzte Vorkommen eines gegebenen Schlüssels (also sollte das versteckte Feld zuerst gehen)). Und dies ist offenbar in den Release Notes und Dokumenten schlecht dokumentiert.

Antwort

0

Wenn ich mich recht erinnere, brauchen Sie kein verstecktes Feld mit Schienen 2, Sie verwenden nur check_box_tag und es macht alles für Sie.

+0

Es sieht aus wie 'check_box' alles für Sie tut, aber' check_box_tag' nicht. Sehen Sie meine Bearbeitung oben auf, was ich als das Problem gefunden habe. – jrdioko