Sha256: aaea272353c5e2676ec9c042743cbcae05040ad0a0aabeba65c53443a70e6c25
Contents?: true
Size: 803 Bytes
Versions: 33
Compression:
Stored size: 803 Bytes
Contents
class ArrayValidator < ActiveModel::EachValidator def validate_each(record, attribute, values) [values].flatten.each do |value| options.each do |key, args| validator_options = { attributes: attribute } validator_options.merge!(args) if args.is_a?(Hash) next if value.nil? && validator_options[:allow_nil] next if value.blank? && validator_options[:allow_blank] validator_class_name = "#{key.to_s.camelize}Validator" validator_class = begin validator_class_name.constantize rescue NameError "ActiveModel::Validations::#{validator_class_name}".constantize end validator = validator_class.new(validator_options) validator.validate_each(record, attribute, value) end end end end
Version data entries
33 entries across 33 versions & 1 rubygems