module ValidatesUniquenessViaAssociation

Constants

VERSION

Public Instance Methods

validates_uniqueness_via_association(attribute, association, message: :taken, associated: nil) click to toggle source
# File lib/validates_uniqueness_via_association.rb, line 10
def validates_uniqueness_via_association(attribute, association, message: :taken, associated: nil)
  validate do
    siblings = send(association).send(associated || self.class.name.underscore.pluralize) + [self]
    siblings.uniq!
    errors.add attribute, message if siblings.map(&attribute.to_sym).uniq!
  end
end