validate_numeric first so Fixnum is not evaluated with .downcase