Das Rails-Feld "Kann nicht leer sein", auch wenn es nicht leer ist

9

Ich verwende Rails 3 und schicke kein Formular, weil eines der Felder validates_presence_of nicht übergibt. Mein Modell heißt dinner , und das Feld, das in Verbindung mit einem Datumsauswahl verwendet wird, heißt date .

views/dinners/new.html.erb:

%Vor%

models/dinner.rb:

%Vor%

dinners_controller.rb:

%Vor%

Immer wenn ich alle Felder ausfülle, einschließlich date , bekomme ich den Fehler "Datum kann nicht leer sein", obwohl es nicht leer ist. Was ist hier los?

    
LonelyWebCrawler 23.01.2013, 19:49
quelle

1 Antwort

4

Ich habe die Antwort gefunden.

Meine date -Spalte hatte den Typ date und vor der Validierung hat Rails .to_date darauf ausgeführt. Leider erstellt der Datapicker , den ich verwende, Daten im amerikanischen mm/dd/yy -Format, die Rails nicht verarbeiten kann, also .to_date hat null zurückgegeben. Aus diesem Grund hat das Datum die Validierung nicht bestanden: weil es wirklich Null war, obwohl die POST-Anfrage in Ordnung war.

Ich habe die einfache Lösung gewählt und das Standarddatum von datepicker wie hier hier geändert.

Hinweis: Für meine Version von datepicker musste ich format anstelle von dateFormat verwenden, und auch musste yyyy-mm-dd anstelle von yy-mm-dd verwenden, weil Rails String#to_date denkt dass das Jahr "13" buchstäblich "0013" und nicht "2013" ist.

    
LonelyWebCrawler 25.01.2013, 22:07
quelle

Tags und Links