The presence validation is not needed here, since checking the format requires that the field be present. The regular expression is also a bit off; it checks that "http" appears between word boundaries, not that "http" appears at the start of the string (that would be `/\Ahttp/`). For instance, the string "my http site" would pass this validation.