# Validare un data

**URL:** <https://www.ruby-forum.com/t/validare-un-data/150902>\
**Category:** IT\
**Created:** [October 14, 2008, 8:22pm UTC](https://www.ruby-forum.com/t/validare-un-data/150902 "2008-10-14T20:22:52Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![collimarco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ecb155/32.png) [@collimarco](https://www.ruby-forum.com/u/collimarco)\
**Post date:** [October 14, 2008, 8:22pm UTC](https://www.ruby-forum.com/t/validare-un-data/150902/1 "2008-10-14T20:22:52Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![collimarco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ecb155/32.png) [@collimarco](https://www.ruby-forum.com/u/collimarco)\
**Post date:** [October 14, 2008, 11:50pm UTC](https://www.ruby-forum.com/t/validare-un-data/150902/2 "2008-10-14T23:50:27Z")

</div>

Prova così

validates\_inclusion\_of :birthday, :in =\> (Date.today -  
99.years)…(Date.today - 8.years)

ciao

---

<div class="post-metadata">

**Author:** ![collimarco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ecb155/32.png) [@collimarco](https://www.ruby-forum.com/u/collimarco)\
**Post date:** [October 15, 2008, 3:15pm UTC](https://www.ruby-forum.com/t/validare-un-data/150902/3 "2008-10-15T15:15:15Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![collimarco](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ecb155/32.png) [@collimarco](https://www.ruby-forum.com/u/collimarco)\
**Post date:** [October 15, 2008, 8:44pm UTC](https://www.ruby-forum.com/t/validare-un-data/150902/4 "2008-10-15T20:44:22Z")

</div>

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/](http://svn.viney.net.nz/things/rails/plugins/validates_date_time/)
