valides_date_time pluginで日本の時間表記を通す
日付のvalidateをどうしようかなと思ったら、すでにpluginでありました。
./script/plugin install validates_date_time
でインストール。
validates_date :birthday
というふうに使うんだけど、このプラグイン。2008/1/1というふうな日本の日付表記が通りません。で、下のように加えるとOK。
/validates_date_time/lib/parser.rb 10 year, month, day = case value.strip 11 # 22/1/06, 22\1\06 or 22.1.06 12 when /\A(\d{1,2})[\\\/\.-](\d{1,2})[\\\/\.-](\d{2}|\d{4})\Z/ 13 ValidatesDateTime.us_date_format ? [$3, $1, $2] : [$3, $2, $1] 14 # 22 Feb 06 or 1 jun 2001 15 when /\A(\d{1,2}) (\w{3,9}) (\d{2}|\d{4})\Z/ 16 [$3, $2, $1] 17 # July 1 2005 18 when /\A(\w{3,9}) (\d{1,2})\,? (\d{2}|\d{4})\Z/ 19 [$3, $1, $2] 20 # 2006-01-01 21 when /\A(\d{4})-(\d{2})-(\d{2})\Z/ 22 [$1, $2, $3] 23 # 2008/4/1 or 2008/04/01 *********ここ加えた。********* 24 when /\A(\d{4})\/(\d{1,2})\/(\d{1,2})\Z/ 25 [$1, $2, $3] 26 # 2006-01-01T10:10:10+13:00 **********ここまで********** 27 when /\A(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})\Z/ 28 [$1, $2, $3] 29 # Not a valid date string 30 else 31 return nil 32 end