Hallo allerseits,
wie angekündigt kommen nun öfters Fragen von mir zum Thema RoR
Ich habe folgenden Code in einem meiner Formulare, der - so der Plan - je nach Auswahl des Benutzers 1, 0 oder NULL in die Datenbank eintragen sollte. Das Datenbankfeld ist wie folgt definiert:
|
SQL Code
|
1
|
`gender` tinyint(1) DEFAULT NULL
|
(Warum hier tinyint(1) und nicht bool verwendet wird, weiß ich nicht. Bei der Migration habe ich gender:boolean angegeben - das kam raus.)
Der Ruby-Code schaut so aus:
|
RubyOnRails Quellcode
|
1
2
3
4
5
6
|
<p>
<%= f.label :gender, "Geschlecht" %>
Männlich <%= f.radio_button :gender, true %>
Weiblich <%= f.radio_button :gender, false %>
Keine Angabe <%= f.radio_button :gender, nil %>
</p>
|
Wähle ich jedoch "Keine Angabe" mit dem Wert nil (Ruby für NULL) landet false in der Datenbank.
Kann mir da jemand einen Rat geben? Ich habe ein altes
Ticket im RoR-Trac gefunden, angeblich ist dieser "Fehler" behoben. Ich verwende die aktuelleste Rails-Version.
Danke für die Hilfe!
P.S.: Ich sehe gerade, dass der ausgegebene Quelltext davon wie folgt aussieht:
|
RubyOnRails Quellcode
|
1
2
3
4
5
6
|
<p>
<label for="profile_gender">Geschlecht</label>
Männlich <input id="profile_gender_true" name="profile[gender]" type="radio" value="true" />
Weiblich <input checked="checked" id="profile_gender_false" name="profile[gender]" type="radio" value="false" />
Keine Angabe <input id="profile_gender_" name="profile[gender]" type="radio" />
</p>
|
Eine Idee, wie ich nil setzen kann?