Overview
The class_table_inheritance_constraint_validations plugin extends the constraint_validations plugin to work correctly with the class_table_inheritance plugin. It ensures that constraint_validations are loaded from all tables in the class table inheritance hierarchy, not just the base table.
Example
For example, with this hierarchy, where each model has its own table with constraint validations:
Employee
/ \
Staff Manager
|
Executive
# Loads constraint_validations from the employees table
class Employee < Sequel::Model
plugin :class_table_inheritance
plugin :constraint_validations
plugin :class_table_inheritance_constraint_validations
end
# Loads constraint_validations from managers and employees tables
class Manager < Employee
end
# Loads constraint_validations from executives, managers, and
# employees tables
class Executive < Manager
end
# Loads constraint_validations from staff and employees tables
class Staff < Employee
end
Classes and Modules
Public Class methods
apply(model)
[show source]
# File lib/sequel/plugins/class_table_inheritance_constraint_validations.rb 47 def self.apply(model) 48 unless ConstraintValidations::InstanceMethods > model && ClassTableInheritance::InstanceMethods > model 49 raise Error, "must load the constraint_validations and class_table_inheritance plugins into #{model} before loading class_table_inheritance_constraint_validations plugin" 50 end 51 end