module SchemaValidations
generated from version VERSION_INFO
Public Instance Methods
belongs_to_presence_validations_for(not_null_columns)
click to toggle source
# File lib/generated_schema_validations/template.rb, line 30 def belongs_to_presence_validations_for(not_null_columns) reflect_on_all_associations(:belongs_to).each do |association| if not_null_columns.include?(association.foreign_key.to_sym) validates association.name, presence: true schema_validations_excluded_columns.push(association.foreign_key.to_sym) end end end
belongs_to_uniqueness_validations_for(unique_indexes)
click to toggle source
# File lib/generated_schema_validations/template.rb, line 39 def belongs_to_uniqueness_validations_for(unique_indexes) reflect_on_all_associations(:belongs_to).each do |association| dbv_uniqueness_validations_for(unique_indexes, foreign_key: association.foreign_key.to_s, column: association.name) end end
dbv_uniqueness_validations_for(unique_indexes, foreign_key:, column:)
click to toggle source
# File lib/generated_schema_validations/template.rb, line 54 def dbv_uniqueness_validations_for(unique_indexes, foreign_key:, column:) unique_indexes.each do |names| next unless foreign_key.in?(names) next if column.to_sym.in?(schema_validations_excluded_columns) scope = (names - [foreign_key]).map(&:to_sym) options = { allow_nil: true } options[:scope] = scope if scope.any? options[:if] = (proc do |record| if scope.all? { |scope_sym| record.public_send(:"#{scope_sym}?") } record.public_send(:"#{foreign_key}_changed?") else false end end) validates column, uniqueness: options end end
schema_validations(exclude: [], schema_table_name: table_name)
click to toggle source
# File lib/generated_schema_validations/template.rb, line 17 def schema_validations(exclude: [], schema_table_name: table_name) self.schema_validations_excluded_columns += exclude send("dbv_#{schema_table_name}_validations") end
uniqueness_validations_for(unique_indexes)
click to toggle source
# File lib/generated_schema_validations/template.rb, line 46 def uniqueness_validations_for(unique_indexes) unique_indexes.each do |names| names.each do |name| dbv_uniqueness_validations_for(unique_indexes, foreign_key: name, column: name) end end end
validates_with_filter(attribute, options)
click to toggle source
# File lib/generated_schema_validations/template.rb, line 24 def validates_with_filter(attribute, options) return if attribute.to_sym.in?(schema_validations_excluded_columns) validates attribute, options end