Spec-Zone.ru › Ruby on Rails 7.0

модуль ActiveRecord::ModelSchema

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

immutable_strings_by_default=(bool) Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 129
included do
  class_attribute :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

  # Defines the name of the table column which will store the class name on single-table
  # inheritance situations.
  #
  # The default inheritance column name is +type+, which means it's a
  # reserved word inside Active Record. To be able to use single-table
  # inheritance with another column name, or to use the column +type+ in
  # your own model for something else, you can set +inheritance_column+:
  #
  #     self.inheritance_column = 'zoink'
  class_attribute :inheritance_column, instance_accessor: false, default: "type"
  singleton_class.class_eval do
    alias_method :_inheritance_column=, :inheritance_column=
    private :_inheritance_column=
    alias_method :inheritance_column=, :real_inheritance_column=
  end

  self.protected_environments = ["production"]

  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
    

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

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

Устанавливает столбец для сортировки записей, если в вызове ordered finder не указано явное условие сортировки. Полезно, когда первичный ключ не является автоинкрементным целым числом, например, когда это 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 Record.

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 Record.

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» и т. д. Это удобный способ создания пространства имен для таблиц в общей базе данных. По умолчанию префикс — пустая строка.

Если вы организуете свои модели в модулях, вы можете добавить префикс к моделям в пространстве имен, определив метод singleton в родительском модуле под названием 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»). По умолчанию суффикс — пустая строка.

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

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

Spec-Zone.ru

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