module ActiveRecord::MTI::ModelSchema::ClassMethods

Public Instance Methods

compute_table_name() click to toggle source

Computes and returns a table name according to default conventions.

Calls superclass method
# File lib/active_record/mti/model_schema.rb, line 11
def compute_table_name
  if self != base_class
    # Nested classes are prefixed with singular parent table name.
    if superclass < Base && !superclass.abstract_class?
      contained = superclass.table_name
      contained = contained.singularize if superclass.pluralize_table_names
      contained += '/'
    end

    potential_table_name = "#{full_table_name_prefix}#{contained}#{decorated_table_name(name)}#{full_table_name_suffix}"

    if check_inheritance_of(potential_table_name)
      potential_table_name
    else
      superclass.table_name
    end
  else
    super
  end
end

Private Instance Methods

decorated_table_name(class_name = base_class.name) click to toggle source

Guesses the table name, but does not decorate it with prefix and suffix information.

Calls superclass method
# File lib/active_record/mti/model_schema.rb, line 45
def decorated_table_name(class_name = base_class.name)
  super
rescue NoMethodError
  table_name = class_name.to_s.underscore
  pluralize_table_names ? table_name.pluralize : table_name
end
full_table_name_rescue(which) click to toggle source
# File lib/active_record/mti/model_schema.rb, line 40
def full_table_name_rescue(which)
  (parents.detect{ |p| p.respond_to?(which) } || self).send(which)
end