Sha256: 6b8c64baaca5956bc9d1239f028a13fafe9d740e44c6dc5840b8aa07e410773f
Contents?: true
Size: 706 Bytes
Versions: 9
Compression:
Stored size: 706 Bytes
Contents
# # Custom validator for file sizes # # @example # # -> validates :image, size: { less_than: 2.megabytes } # -> validates :image, size: { less_than: 2.megabytes, message: 'is too large, please upload a file smaller than 2MB' } # class SizeValidator < ActiveModel::EachValidator def validate_each(record, attribute, value) return unless value.present? && value.attached? options = instance_values["options"] max_size = options.try(:[], :less_than) || 2.megabytes message = options.try(:[], :message) || "is too large, please upload a file smaller than #{max_size / 1.megabyte}MB" if value.blob.byte_size > max_size record.errors.add(attribute, message) end end end
Version data entries
9 entries across 9 versions & 1 rubygems