Class: ActiveStorageValidations::TotalSizeValidator
- Inherits:
-
BaseSizeValidator
- Object
- ActiveModel::EachValidator
- BaseSizeValidator
- ActiveStorageValidations::TotalSizeValidator
- Defined in:
- lib/active_storage_validations/total_size_validator.rb
Constant Summary collapse
- ERROR_TYPES =
%i[ total_file_size_not_less_than total_file_size_not_less_than_or_equal_to total_file_size_not_greater_than total_file_size_not_greater_than_or_equal_to total_file_size_not_between ].freeze
Constants inherited from BaseSizeValidator
BaseSizeValidator::AVAILABLE_CHECKS
Instance Method Summary collapse
Methods inherited from BaseSizeValidator
Methods included from ASVErrorable
#add_error, #initialize_error_options
Constructor Details
This class inherits a constructor from ActiveStorageValidations::BaseSizeValidator
Instance Method Details
#validate_each(record, attribute, _value) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/active_storage_validations/total_size_validator.rb', line 15 def validate_each(record, attribute, _value) custom_check_validity!(record, attribute) return if (record, attribute) total_file_size = attached_files(record, attribute).sum { |file| file.blob.byte_size } = (record) return if is_valid?(total_file_size, ) = (, nil) (, ) [:total_file_size] = number_to_human_size(total_file_size) keys = AVAILABLE_CHECKS & .keys error_type = "total_file_size_not_#{keys.first}".to_sym add_error(record, attribute, error_type, **) end |