module ValidatesLengthsFromDatabase::InstanceMethods
Public Instance Methods
validate_lengths_from_database()
click to toggle source
# File lib/validates_lengths_from_database.rb, line 34 def validate_lengths_from_database options = self.class.validate_lengths_from_database_options if options[:only] columns_to_validate = options[:only].map(&:to_s) else columns_to_validate = self.class.column_names.map(&:to_s) columns_to_validate -= options[:except].map(&:to_s) if options[:except] end columns_to_validate.each do |column| column_schema = self.class.columns.find {|c| c.name == column } next if column_schema.nil? next if ![:string, :text].include?(column_schema.type) next if column_schema.respond_to?(:array) && column_schema.array column_limit = options[:limit][column_schema.type] || column_schema.limit next unless column_limit ActiveModel::Validations::LengthValidator.new(:maximum => column_limit, :allow_blank => true, :attributes => [column]).validate(self) end end