Class: UrlValidator
- Inherits:
 - 
      ActiveModel::EachValidator
      
        
- Object
 - ActiveModel::EachValidator
 - UrlValidator
 
 
- Defined in:
 - app/validators/url_validator.rb
 
Overview
A custom validator to check that the field value is a URL.
validates :my_url, url: true
  Instance Method Summary collapse
- 
  
    
      #url_valid?(url)  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    
a URL may be technically well-formed but may not actually be valid, so this checks for both.
 - #validate_each(record, attribute, value) ⇒ Object
 
Instance Method Details
#url_valid?(url) ⇒ Boolean
a URL may be technically well-formed but may not actually be valid, so this checks for both.
      14 15 16 17 18 19 20 21  | 
    
      # File 'app/validators/url_validator.rb', line 14 def url_valid?(url) return true if url.blank? url = URI.parse(url) (url.is_a?(URI::HTTP) || url.is_a?(URI::HTTPS)) && url.host.present? rescue URI::InvalidURIError false end  | 
  
#validate_each(record, attribute, value) ⇒ Object
      8 9 10  | 
    
      # File 'app/validators/url_validator.rb', line 8 def validate_each(record, attribute, value) record.errors.add attribute, :url_format, ** unless url_valid?(value) end  |