Class: Validatable::ValidatesUniquenessOf

Inherits:
ValidationBase show all
Defined in:
lib/validations/validates_uniqueness_of.rb

Instance Attribute Summary

Attributes inherited from ValidationBase

#attribute

Instance Method Summary collapse

Methods inherited from ValidationBase

after_validate, after_validations, all_after_validations, all_defaults, default, defaults, #initialize, option, #raise_error_if_key_is_dup, required_option, #run_after_validate, #should_validate?, #validate_this_time?

Methods included from Requireable

included, #requires

Methods included from Understandable

included, #must_understand

Constructor Details

This class inherits a constructor from Validatable::ValidationBase

Instance Method Details

#message(instance) ⇒ Object



14
15
16
# File 'lib/validations/validates_uniqueness_of.rb', line 14

def message(instance)
  super || "must be unique"
end

#valid?(instance) ⇒ Boolean

Returns:

  • (Boolean)


5
6
7
8
9
10
11
12
# File 'lib/validations/validates_uniqueness_of.rb', line 5

def valid?(instance)
  conditions = { self.attribute => instance.send(attribute) }
  if scope
    conditions.merge!(scope => instance.send(scope))
  end
  doc = instance.class.first(:conditions => conditions)
  doc.nil? || instance.id == doc.id
end