Spec-Zone.ru › Ruby on Rails 8.1

модуль ActiveRecord::ModelSchema

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

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

Определяет, следует ли выводить тип столбцов как :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).

По умолчанию записи дополнительно сортируются по первичному ключу, чтобы обеспечить детерминированные результаты. Чтобы отключить такую дополнительную сортировку, задайте для ‘implicit_order_column` значение `[“column_name”, nil]`.

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

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

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

self.inheritance_column = 'zoink'

Чтобы полностью отключить наследование с одной таблицей, задайте для inheritance_column значение nil

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

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

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