Validare un data


#1

Ciao a tutti,

sto creando un form di registrazione in cui l’utente immette anche la
sua data di nascita:

f.date_select :birthday, {:include_blank => true, :order => [:day,
:month, :year], :start_year => 99.years.ago.year, :end_year =>
8.years.ago.year}

Ora dovrei validare che la data - al momento dell’inserimento nel
database - sia compresa fra gli 8 e i 99 anni. Ho provato in questo
modo, ma non funziona…

validates_inclusion_of :birthday, :in => (99.years.ago)…(8.years.ago)

Come posso fare?
Grazie


#2

Prova così

validates_inclusion_of :birthday, :in => (Date.today -
99.years)…(Date.today - 8.years)

ciao


#3

Pierpaolo S. wrote:

validates_inclusion_of :birthday, :in => (Date.today -
99.years)…(Date.today - 8.years)

Grazie mille funziona! Però mi sono accorto che in questo modo vengono
accettate anche date in cui non è stato specificato il giorno o il mese
(per es una date_select del genere - - 1983 è accetata).

Com’è che potrei validare che sia il giorno, sia il mese, sia l’anno
siano specificati? validates_presence_of :birthday non dà l’effetto
desiderato…
Potrei usare una espressione regolare?


#4

Marco C. wrote:

Com’è che potrei validare che sia il giorno, sia il mese, sia l’anno
siano specificati? validates_presence_of :birthday non dà l’effetto
desiderato…

Risolto utilizzando questo fantastico plugin:
http://svn.viney.net.nz/things/rails/plugins/validates_date_time/