module ActiveRecord::Validations::ClassMethods
Public Instance Methods
validates_columns(*column_names)
click to toggle source
Automatically validates the column against the schema definition for nullability, format, and enumerations. Handles integers, floats, enumerations, and string limits.
Usage: validates_columns
:severity, :name
# File lib/enum/validations.rb, line 10 def validates_columns(*column_names) begin cols = columns_hash column_names.each do |name| col = cols[name.to_s] raise ArgumentError, "Cannot find column #{name}" unless col # test for nullability validates_presence_of(name) if !col.null # Test various known types. case col.type when :enum validates_inclusion_of name, :in => col.limit, :allow_nil => true when :integer, :float validates_numericality_of name, :allow_nil => true when :string if col.limit validates_length_of name, :maximum => col.limit, :allow_nil => true end end end rescue ActiveRecord::StatementInvalid=>e raise e unless e.message.include?("42S02") # swallow the exception if its for a missing table end end