Spec-Zone.ru › Ruby on Rails 6.1

модуль ActiveRecord::ModelSchema

Публичные методы класса

immutable_strings_by_default=(bool) Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 129
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 :internal_metadata_table_name, instance_accessor: false, default: "ar_internal_metadata"
  class_attribute :pluralize_table_names, instance_writer: false, default: true
  class_attribute :implicit_order_column, instance_accessor: false
  class_attribute :immutable_strings_by_default, instance_accessor: false

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

  delegate :type_for_attribute, :column_for_attribute, to: :class

  initialize_load_schema_monitor
end

Определяет, должны ли столбцы определять свой тип как `:string` или `:immutable_string`. Эта настройка не влияет на поведение `attribute :foo, :string`. По умолчанию значение false.

implicit_order_column Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 106
    

Имя столбца, по которому сортируются записи, если при вызове упорядоченного поиска не указано явное условие сортировки. Если не задано, используется первичный ключ.

implicit_order_column=(column_name) Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 113
    

Устанавливает столбец для сортировки записей, когда при вызове упорядоченного поиска не указано явное условие сортировки. Полезно, когда первичный ключ не является целочисленным значением с автоинкрементом, например, когда это UUID. Записи сортируются по первичному ключу, если он существует, чтобы обеспечить детерминированные результаты.

internal_metadata_table_name Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 78
    

Имя внутреннего метаданных таблицы. По умолчанию значение равно "ar_internal_metadata".

internal_metadata_table_name=(table_name) Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 84
    

Устанавливает имя внутренней таблицы метаданных.

pluralize_table_names Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 90
    

Указывает, должны ли имена таблиц быть множественным числом от соответствующих имён классов. Если true, имя таблицы по умолчанию для класса Product будет “products”. Если false, будет просто “product”. Смотрите table_name для полных правил именования таблиц/классов. По умолчанию значение true.

pluralize_table_names=(value) Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 98
    

Устанавливает, должны ли имена таблиц быть множественным числом от соответствующих имён классов. Если true, имя таблицы по умолчанию для класса Product будет “products”. Если false, будет просто “product”. Смотрите table_name для полных правил именования таблиц/классов. По умолчанию значение true.

primary_key_prefix_type Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 10
    

Тип префикса, который будет добавлен к каждому имени столбца первичного ключа. Доступные варианты: :table_name и :table_name_with_underscore. Если указан первый, класс Product будет искать “productid” вместо “id” в качестве первичного столбца. Если указан второй, класс Product будет искать “product_id” вместо “id”. Помните, что это глобальная настройка для всех Active Records.

primary_key_prefix_type=(prefix_type) Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 20
    

Устанавливает тип префикса, который будет добавлен к каждому имени столбца первичного ключа. Доступные варианты: :table_name и :table_name_with_underscore. Если указан первый, класс Product будет искать “productid” вместо “id” в качестве первичного столбца. Если указан второй, класс Product будет искать “product_id” вместо “id”. Помните, что это глобальная настройка для всех Active Records.

schema_migrations_table_name Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 66
    

Имя таблицы миграций схемы. По умолчанию значение равно "schema_migrations".

schema_migrations_table_name=(table_name) Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 72
    

Устанавливает имя таблицы миграций схемы.

table_name_prefix Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 30
    

Строка-префикс, добавляемая к каждому имени таблицы.

table_name_prefix=(prefix) Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 36
    

Устанавливает строку-префикс, добавляемую к каждому имени таблицы. Например, если задано “basecamp_”, все имена таблиц будут выглядеть как “basecamp_projects”, “basecamp_people” и т.д. Это удобный способ создания пространства имён для таблиц в общей базе данных. По умолчанию префикс пустая строка.

Если вы организуете свои модели в модулях, вы можете добавить префикс к моделям в пространстве имен, определив в родительском модуле метод table_name_prefix, который возвращает выбранный префикс.

table_name_suffix Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 49
    

Строка-суффикс, добавляемая к каждому имени таблицы.

table_name_suffix=(suffix) Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 55
    

Действует как table_name_prefix=, но добавляет вместо добавления в начало (например, “_basecamp” даёт “projects_basecamp”, “people_basecamp”). По умолчанию суффикс пустая строка.

Если вы организуете свои модели в модулях, вы можете добавить суффикс к моделям в пространстве имен, определив в родительском модуле метод table_name_suffix, который возвращает выбранный суффикс.

© 2004–2020 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API