# File lib/dm-validations/validators/uniqueness_validator.rb, line 27 def valid?(target) value = target.validation_property_value(field_name) return true if optional?(value) opts = { :fields => target.model.key, field_name => value, } Array(@options[:scope]).each { |subject| opts[subject] = target.__send__(subject) } resource = DataMapper.repository(target.repository.name) { target.model.first(opts) } return true if resource.nil? target.saved? && resource.key == target.key end