class RelationLengthValidator
Public Instance Methods
validate_each(record, attribute, value)
click to toggle source
# File lib/rails/relation_length_validator.rb, line 2 def validate_each(record, attribute, value) if smaller?(value) record.errors.add(attribute, smaller_error_message, options) elsif greater?(value) record.errors.add(attribute, greater_error_message, options) end end
Private Instance Methods
greater?(value)
click to toggle source
# File lib/rails/relation_length_validator.rb, line 24 def greater?(value) value.length > minimum end
greater_error_message()
click to toggle source
# File lib/rails/relation_length_validator.rb, line 37 def greater_error_message message = options[:message] && options[:message][:maximum] message || ::I18n.t( "activerecord.errors.relation_length_is_greater", maximum: maximum, default: "must have at most #{ maximum } elements" ) end
maximum()
click to toggle source
# File lib/rails/relation_length_validator.rb, line 16 def maximum options[:maximum] || Float::INFINITY end
minimum()
click to toggle source
# File lib/rails/relation_length_validator.rb, line 12 def minimum options[:minimum] || 0 end
smaller?(value)
click to toggle source
# File lib/rails/relation_length_validator.rb, line 20 def smaller?(value) value.length < minimum end
smaller_error_message()
click to toggle source
# File lib/rails/relation_length_validator.rb, line 28 def smaller_error_message message = options[:message] && options[:message][:minimum] message || ::I18n.t( "activerecord.errors.relation_length_is_smaller", minimum: minimum, default: "must have at least #{ minimum } elements" ) end