Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
ActiveModel URL Validator
class UrlValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
valid = begin
URI.parse(value).kind_of?(URI::HTTP)
rescue URI::InvalidURIError
false
end
unless valid
record.errors[attribute] << (options[:message] || "is an invalid URL")
end
end
end
@keilmillerjr

Thank you. It works perfectly. :)

@keilmillerjr

One issue I am having is that blank urls not validated by presence are still resulting in an error. I'll fork this and see if I can fix it.

@mopx

@keilmillerjr just add :allow_blank => true

@mdoliwa

Thanks, that's what I was looking for.

@timocratic

https? unicode? I forked, and cleaned-up a bit, but it's untested - just for discussion sake: https://gist.github.com/timocratic/5113293

@toobulkeh

.kind_of?(URI::HTTP) handles HTTPS.

@johnjohndoe

Benjamin Fleischer posted a modified version based on what @timocratic published. He also included an updated version of the spec. An updated fork of this Gist can be found here.

@adamico

see https://gist.github.com/adamico/2a781d6a4fc2ff577e7f for a Rails 4 with I18n messages and updated and simplified specs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.