Module: ActiveStorageValidations::ASVErrorable

Extended by:
ActiveSupport::Concern
Included in:
AspectRatioValidator, AttachedValidator, BaseSizeValidator, ContentTypeValidator, DimensionValidator, LimitValidator, ProcessableImageValidator
Defined in:
lib/active_storage_validations/shared/asv_errorable.rb

Instance Method Summary collapse

Instance Method Details

#add_error(record, attribute, error_type, **errors_options) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/active_storage_validations/shared/asv_errorable.rb', line 20

def add_error(record, attribute, error_type, **errors_options)
  return if record.errors.added?(attribute, error_type)

  # You can read https://api.rubyonrails.org/classes/ActiveModel/Errors.html#method-i-add
  # to better understand how Rails model errors work
  record.errors.add(attribute, error_type, **errors_options)
end

#initialize_error_options(options, file = nil) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/active_storage_validations/shared/asv_errorable.rb', line 7

def initialize_error_options(options, file = nil)
  not_explicitly_written_options = %i(with in)
  curated_options = options.except(*not_explicitly_written_options)

  active_storage_validations_options = {
    validator_type: self.class.to_sym,
    custom_message: (options[:message] if options[:message].present?),
    filename: (get_filename(file) unless self.class.to_sym == :total_size)
  }.compact

  curated_options.merge(active_storage_validations_options)
end