Spec-Zone.ru › Ruby on Rails 7.1

module ActiveRecord::ModelSchema

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

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

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

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

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

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

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

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

Имя столбца таблицы, который хранит имя класса в ситуациях наследования одной таблицей.

Имя столбца наследования по умолчанию — type, что означает, что это зарезервированное слово внутри Active Record. Чтобы иметь возможность использовать наследование одной таблицей с другим именем столбца или использовать столбец type в собственной модели для чего-то другого, можно установить inheritance_column:

self.inheritance_column = 'zoink'
inheritance_column=(column) Показать исходный код
# File activerecord/lib/active_record/model_schema.rb, line 157
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

  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

Определяет имя столбца таблицы, который будет хранить имя класса в ситуациях наследования одной таблицей.

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

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

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

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

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

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

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

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

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

Тип префикса, который будет добавлен перед именем каждого столбца первичного ключа. Доступные варианты: :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 27
    

Устанавливает тип префикса, который будет добавлен перед именем каждого столбца первичного ключа. Доступные варианты: :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 73
    

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

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

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

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

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

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

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

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

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

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

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

Работает аналогично table_name_prefix=, но добавляет суффикс вместо префикса (установка «_basecamp» даёт «projects_basecamp», «people_basecamp»). По умолчанию суффикс — пустая строка.

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

Методы открытого экземпляра

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

Возвращает значение базового столбца для столбца с именем «id». Полезно при определении составного первичного ключа, включающего столбец «id», чтобы значение было читаемым.

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

Spec-Zone.ru

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