Module: ForeignKeyValidation::ModelExtension::ClassMethods

Defined in:
lib/foreign_key_validation/model_extension.rb

Instance Method Summary collapse

Instance Method Details

#validate_foreign_keys(opt = {}) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/foreign_key_validation/model_extension.rb', line 17

def validate_foreign_keys(opt={})
  subclasses.map {|klass| klass.send(:validate_foreign_keys, opt)}

  validator = Validator.new(self, opt)
  validator.check

  define_method validator.filter_method_name do
    validator.validate_with.each do |reflection_name|
      validate_foreign_key(validator.validate_against_key, reflection_name)
    end
  end
  private validator.filter_method_name.to_sym

  before_validation validator.filter_method_name
end