Class: IpAddressFormatValidator
- Inherits:
-
ActiveModel::EachValidator
- Object
- ActiveModel::EachValidator
- IpAddressFormatValidator
- Defined in:
- lib/validators/ip_address_format_validator.rb
Overview
Allows unique IP address (10.0.1.20), and IP addresses with a mask (10.0.0.0/8). Useful when storing in a Postgresql inet column.
Instance Method Summary collapse
Instance Method Details
#validate_each(record, attribute, value) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/validators/ip_address_format_validator.rb', line 6 def validate_each(record, attribute, value) # In Rails 4.0.0, ip_address will be nil if an invalid IP address was assigned. # https://github.com/jetthoughts/rails/commit/0aa95a71b04f2893921c58a7c1d9fca60dbdcbc2 # BUT: in Rails 4.0.1, validators don't get a chance to # run before IPAddr::InvalidAddressError is raised. # I don't see what broke it in rails 4.0.1... # So this validator doesn't actually do anything anymore. # But let's keep it in case a future version of rails fixes the problem and allows # validators to work on inet and cidr columns. record.errors.add(attribute, :invalid) if record.ip_address.nil? end |