Class: ActiveRecord::StrictValidations::Validation
- Inherits:
-
Struct
- Object
- Struct
- ActiveRecord::StrictValidations::Validation
- Defined in:
- lib/active_record/strict_validations/validation.rb,
lib/active_record/strict_validations/validation/text_validation.rb,
lib/active_record/strict_validations/validation/string_validation.rb,
lib/active_record/strict_validations/validation/integer_validation.rb
Direct Known Subclasses
Defined Under Namespace
Classes: IntegerValidation, StringValidation, TextValidation
Instance Attribute Summary collapse
-
#field ⇒ Object
Returns the value of attribute field.
-
#model ⇒ Object
Returns the value of attribute model.
Class Method Summary collapse
-
.inject_validations(model, options = {}) ⇒ Object
Inject validations into an ActiveRecord model.
Instance Attribute Details
#field ⇒ Object
Returns the value of attribute field
3 4 5 |
# File 'lib/active_record/strict_validations/validation.rb', line 3 def field @field end |
#model ⇒ Object
Returns the value of attribute model
3 4 5 |
# File 'lib/active_record/strict_validations/validation.rb', line 3 def model @model end |
Class Method Details
.inject_validations(model, options = {}) ⇒ Object
Inject validations into an ActiveRecord model
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/active_record/strict_validations/validation.rb', line 5 def self.inject_validations(model, = {}) except = [:except] || [] model_columns = model.columns.dup.reject { |c| except.include?(c.name.to_sym) } if only = [:only] model_columns = model_columns.select { |c| only.include?(c.name.to_sym) } end model_columns.each do |field| validation = "#{field.type.to_s.camelize}Validation" if ActiveRecord::StrictValidations::Validation.const_defined?(validation) "ActiveRecord::StrictValidations::Validation::#{validation}".constantize.new(model, field).apply end end end |