Spec-Zone.ru › Ruby on Rails 7.2

модуль ActiveRecord::ModelSchema

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

immutable_strings_by_default=(bool) Show source
# File activerecord/lib/active_record/model_schema.rb, line 129
    

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

implicit_order_column Show source
# File activerecord/lib/active_record/model_schema.rb, line 113
    

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

implicit_order_column=(column_name) Show source
# File activerecord/lib/active_record/model_schema.rb, line 120
    

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

inheritance_column Show source
# File activerecord/lib/active_record/model_schema.rb, line 137
    

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

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

self.inheritance_column = 'zoink'

Если вы хотите полностью отключить наследование одной таблицы, можно установить inheritance_column в nil

self.inheritance_column = nil
inheritance_column=(column) Show source
# File activerecord/lib/active_record/model_schema.rb, line 162
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 Show source
# File activerecord/lib/active_record/model_schema.rb, line 85
    

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

internal_metadata_table_name=(table_name) Show source
# File activerecord/lib/active_record/model_schema.rb, line 91
    

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

pluralize_table_names Show source
# File activerecord/lib/active_record/model_schema.rb, line 97
    

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

pluralize_table_names=(value) Show source
# File activerecord/lib/active_record/model_schema.rb, line 105
    

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

primary_key_prefix_type Show source
# 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) Show source
# 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 Show source
# File activerecord/lib/active_record/model_schema.rb, line 73
    

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

schema_migrations_table_name=(table_name) Show source
# File activerecord/lib/active_record/model_schema.rb, line 79
    

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

table_name_prefix Show source
# File activerecord/lib/active_record/model_schema.rb, line 37
    

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

table_name_prefix=(prefix) Show source
# File activerecord/lib/active_record/model_schema.rb, line 43
    

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

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

table_name_suffix Show source
# File activerecord/lib/active_record/model_schema.rb, line 56
    

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

table_name_suffix=(suffix) Show source
# File activerecord/lib/active_record/model_schema.rb, line 62
    

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

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

Публичные методы экземпляра

id_value Show source
# 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