diff options
Diffstat (limited to 'app/validators/iso8601_date_validator.rb')
-rw-r--r-- | app/validators/iso8601_date_validator.rb | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/app/validators/iso8601_date_validator.rb b/app/validators/iso8601_date_validator.rb new file mode 100644 index 00000000000..2b4682f0572 --- /dev/null +++ b/app/validators/iso8601_date_validator.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class Iso8601DateValidator < ActiveModel::EachValidator + def validate_each(record, attribute, value) + Date.iso8601(record.read_attribute_before_type_cast(attribute).to_s) + rescue ArgumentError, TypeError + record.errors.add(attribute, _('must be in ISO 8601 format')) + end +end |