2009-03-01 20 views
1

Ich habe ein Webformular in Rails erstellt, das fragt, ob jemand Kinder hat oder nicht? Wenn ich das Formular abschicke, kann es in die Datenbank eingefügt werden. Wenn ich das Formular bearbeite, zeigt es nicht an, dass es fraglich ist.Bearbeitungsformular gibt keinen ausgewählten Wert zurück

Zum Beispiel ist das Feld

Immer, wenn ich „Nein“ wählen und dann das Formular erneut bearbeiten, zeigt dieses Feld als „Ja.“ In der Datenbank wird es als Wert 1 gespeichert. Liegt es daran, dass das Formular die Werte 0 oder 1 nicht mit "Ja" oder "Nein" verknüpfen kann? Fehle ich etwas in der Form?

Antwort

3

Ich nehme an, Sie verwenden MySql als Ihre Datenbank?

Wenn ja, ist dies, weil mysql keinen bool Typ hat. Stattdessen verwendet es TINYINT und setzt 1 bis true und 0 auf false.

Wenn Sie die Daten wieder in Ihr Web-Formular laden, sollte es gut funktionieren, aber ich würde Ihnen raten, dass Sie einfach yes = 1 und no = 0 machen - das ist der "Standard" und geht dagegen ohne Grund wird nur gehen Verwirrung und Leid in der Zukunft verursachen.

+0

PS: Dies basiert auf meiner Erfahrung mit mysql, die veraltet sein kann. Wenn es tatsächlich einen dedizierten Bool-Typ hat oder ich einfach falsch lag, tut mir leid, –

+0

+1, und etwas anders, wenn du anfängst, solltest du mit der Rails-Magie arbeiten, anstatt dagegen. Also sollte true 1 sein, false sollte 0 sein - sonst könnten viele Dinge nicht so funktionieren, wie du es erwartest. –

3

Warum verwenden Sie überhaupt überhaupt eine Auswahl? Ein einfaches Kontrollkästchen würde ausreichen.

Verwandte Themen