wydaje sie ze powinno działać jak trzeba a jednak gdy wybiorę tylko dzień (np 15) i wyśle formularz to przechodzi walidacje i do bazy trafia data 0015-01-01, nie bardzo wiem skąd woził sie rok 0015 skoro nie był wybrany a zakres to 1900…1992
Oczywiście jeśli wybiorę 15 luty 1999 to do bazy trafia poprawnie 1999-02-15
mam wiec gorącą prośbe o rady jak ujarzmić select_date lub podpowiedz czym go zastąpić
Wydaje mi się, że błędne wartości są również w parametrach :start_year i :end_year. Mam też dziwne wrażenie, że Twoje pole w bazie ma typ inny niż date lub datetime (varchar?).
Walidator ten nie sprawdza samego roku. Sprawdza, czy atrybut znajduje się w podanym przedziale, tablicy, itp.
code=ruby.include?(Date.today)
#=> true[/code]
BTW, dokumentacja klasy Date jest dość mocno zakręcona, okazuje się, że new jest aliasem metody civil: http://apidock.com/ruby/DateTime/civil/class
Generalnie jeśli nie podasz miesiąca i dnia to domyślnie jest to pierwszy stycznia.
edit: co do parametrów :start_date i :end_date, które podałeś: na moje oko jest to przedział 1992…1900.
w każdej innej kombinacji wysyła poprawnie formularz. Jedynie co przychodzi mi na myśl to to ze z jakiegoś powodu dni “zachowują” się jak miesiące puszcza zakres 1…12 ale w oby przypadkach parametry są dobrze przyporządkowane