123456789_123456789_123456789_123456789_123456789_

Module: ActiveRecord::ModelSchema

Relationships & Source Files
Namespace Children
Modules:
Extension / Inclusion / Inheritance Descendants
Included In:
Base, ActiveRecord::InternalMetadata, ActiveRecord::SchemaMigration
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Defined in: activerecord/lib/active_record/model_schema.rb

Class Method Summary

::ActiveSupport::Concern - Extended

DSL Calls

included

[ GitHub ]


105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'activerecord/lib/active_record/model_schema.rb', line 105

included do
  mattr_accessor :primary_key_prefix_type, instance_writer: false

  class_attribute :table_name_prefix, instance_writer: false, default: ""
  class_attribute :table_name_suffix, instance_writer: false, default: ""
  class_attribute :schema_migrations_table_name, instance_accessor: false, default: "schema_migrations"
  class_attribute :, instance_accessor: false, default: "ar_internal_metadata"
  class_attribute :pluralize_table_names, instance_writer: false, default: true

  self.protected_environments = ["production"]
  self.inheritance_column = "type"
  self.ignored_columns = [].freeze

  delegate :type_for_attribute, to: :class

  initialize_load_schema_monitor
end

Class Method Details

.internal_metadata_table_name

The name of the internal metadata table. By default, the value is "ar_internal_metadata".

[ GitHub ]

  
# File 'activerecord/lib/active_record/model_schema.rb', line 77

RDoc directive :singleton-method: internal_metadata_table_name

.internal_metadata_table_name=(table_name)

Sets the name of the internal metadata table.

[ GitHub ]

  
# File 'activerecord/lib/active_record/model_schema.rb', line 83

RDoc directive :singleton-method: internal_metadata_table_name=

.pluralize_table_names

Indicates whether table names should be the pluralized versions of the corresponding class names. If true, the default table name for a Product class will be “products”. If false, it would just be “product”. See table_name for the full rules on table/class naming. This is true, by default.

[ GitHub ]

  
# File 'activerecord/lib/active_record/model_schema.rb', line 89

RDoc directive :singleton-method: pluralize_table_names

.pluralize_table_names=(value)

Set whether table names should be the pluralized versions of the corresponding class names. If true, the default table name for a Product class will be “products”. If false, it would just be “product”. See table_name for the full rules on table/class naming. This is true, by default.

[ GitHub ]

  
# File 'activerecord/lib/active_record/model_schema.rb', line 105

RDoc directive :singleton-method: pluralize_table_names=

.primary_key_prefix_type

The prefix type that will be prepended to every primary key column name. The options are :table_name and :table_name_with_underscore. If the first is specified, the Product class will look for “productid” instead of “id” as the primary column. If the latter is specified, the Product class will look for “product_id” instead of “id”. Remember that this is a global setting for all Active Records.

[ GitHub ]

  
# File 'activerecord/lib/active_record/model_schema.rb', line 9

RDoc directive :singleton-method: primary_key_prefix_type

.primary_key_prefix_type=(prefix_type)

Sets the prefix type that will be prepended to every primary key column name. The options are :table_name and :table_name_with_underscore. If the first is specified, the Product class will look for “productid” instead of “id” as the primary column. If the latter is specified, the Product class will look for “product_id” instead of “id”. Remember that this is a global setting for all Active Records.

[ GitHub ]

  
# File 'activerecord/lib/active_record/model_schema.rb', line 19

RDoc directive :singleton-method: primary_key_prefix_type=

.schema_migrations_table_name

The name of the schema migrations table. By default, the value is "schema_migrations".

[ GitHub ]

  
# File 'activerecord/lib/active_record/model_schema.rb', line 65

RDoc directive :singleton-method: schema_migrations_table_name

.schema_migrations_table_name=(table_name)

Sets the name of the schema migrations table.

[ GitHub ]

  
# File 'activerecord/lib/active_record/model_schema.rb', line 71

RDoc directive :singleton-method: schema_migrations_table_name=

.table_name_prefix

The prefix string to prepend to every table name.

[ GitHub ]

  
# File 'activerecord/lib/active_record/model_schema.rb', line 29

RDoc directive :singleton-method: table_name_prefix

.table_name_prefix=(prefix)

Sets the prefix string to prepend to every table name. So if set to “basecamp_”, all table names will be named like “basecamp_projects”, “basecamp_people”, etc. This is a convenient way of creating a namespace for tables in a shared database. By default, the prefix is the empty string.

If you are organising your models within modules you can add a prefix to the models within a namespace by defining a singleton method in the parent module called table_name_prefix which returns your chosen prefix.

[ GitHub ]

  
# File 'activerecord/lib/active_record/model_schema.rb', line 35

RDoc directive :singleton-method: table_name_prefix=

.table_name_suffix

The suffix string to append to every table name.

[ GitHub ]

  
# File 'activerecord/lib/active_record/model_schema.rb', line 48

RDoc directive :singleton-method: table_name_suffix

.table_name_suffix=(suffix)

Works like .table_name_prefix=, but appends instead of prepends (set to “_basecamp” gives “projects_basecamp”, “people_basecamp”). By default, the suffix is the empty string.

If you are organising your models within modules, you can add a suffix to the models within a namespace by defining a singleton method in the parent module called table_name_suffix which returns your chosen suffix.

[ GitHub ]

  
# File 'activerecord/lib/active_record/model_schema.rb', line 54

RDoc directive :singleton-method: table_name_suffix=