lib/paperclip/validators/attachment_presence_validator.rb in paperclip-3.4.2 vs lib/paperclip/validators/attachment_presence_validator.rb in paperclip-3.5.0

- old
+ new

@@ -1,26 +1,26 @@ require 'active_model/validations/presence' module Paperclip module Validators - class AttachmentPresenceValidator < ActiveModel::Validations::PresenceValidator - def validate(record) - [attributes].flatten.map do |attribute| - if record.send(:read_attribute_for_validation, "#{attribute}_file_name").blank? - record.errors.add(attribute, :blank, options) - end + class AttachmentPresenceValidator < ActiveModel::EachValidator + def validate_each(record, attribute, value) + if record.send("#{attribute}_file_name").blank? + record.errors.add(attribute, :blank, options) end end end module HelperMethods - # Places ActiveRecord-style validations on the presence of a file. + # Places ActiveModel validations on the presence of a file. # Options: # * +if+: A lambda or name of an instance method. Validation will only # be run if this lambda or method returns true. # * +unless+: Same as +if+ but validates if lambda or method returns false. def validates_attachment_presence(*attr_names) - validates_with AttachmentPresenceValidator, _merge_attributes(attr_names) + options = _merge_attributes(attr_names) + validates_with AttachmentPresenceValidator, options.dup + validate_before_processing AttachmentPresenceValidator, options.dup end end end end