ich ein Datumsfeld in einem Modell gesichert Form in meiner Rails App haben:Rails date_select Helfer und Validierung
<%= f.date_select :birthday,
{:start_year => Time.now.year,
:end_year => 1900,
:use_short_month => true,
:order => [:month, :day, :year],
:prompt => {:month => 'Month', :day => 'Day', :year => 'Year'}},
{:class => 'year',
:id => 'user_birthday'}
%>
Es ist im Modellcode validiert wird unter Verwendung von:
validates_presence_of :birthday, :message => 'is a required field'
Leider, wenn Der Benutzer gibt einen Teilwert ein, z. B. nur das Jahr, das Formular wird dennoch ohne Fehler übergeben. Stattdessen wird ein funky Datum Wert in die db geschrieben. Wie mache ich alle drei Felder obligatorisch?
Ich möchte eine benutzerdefinierte Validierung dafür schreiben, aber ich weiß nicht, wie Sie die einzelnen Teile des Geburtstagselements richtig zugreifen. Wie kann ich das machen?
Danke! Moe
Ich bemerke, dass Sie nicht ': include_blank => true' haben. Ist es überhaupt möglich, einen Rohling zu lassen? Welches Datum bekommen Sie, wenn Sie das Jahr auf 2000 setzen? Außerdem: start_year sollte früher als: end_year sein. – mckeed
Hi mckeed, ': prompt => {: Monat => 'Monat',: Tag => 'Tag',: Jahr => 'Jahr'}' fügt leere Standardwerte für Monat, Tag und Jahr ein. ': end_year' ist kleiner als': start_year', weil ich die bestellten Werte desc wollte. – Moe