модуль ActiveRecord::ModelSchema
Публичные методы класса
# File activerecord/lib/active_record/model_schema.rb, line 129
Определяет, должны ли столбцы выводить свой тип как :string или :immutable_string. Эта настройка не влияет на поведение attribute :foo, :string. По умолчанию — false.
# File activerecord/lib/active_record/model_schema.rb, line 113
Имя столбца, по которому упорядочиваются записи, если при вызове упорядоченного поиска не используется явное условие порядка. Если не задано, используется первичный ключ.
# File activerecord/lib/active_record/model_schema.rb, line 120
Устанавливает столбец для сортировки записей, когда при вызове упорядоченного поиска не используется явное условие порядка. Полезно, когда первичный ключ не является автоматически инкрементируемым целым числом, например, когда это UUID. Записи сортируются по первичному ключу (если он существует) для обеспечения детерминированных результатов.
# 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
# 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 Определяет имя столбца таблицы, в котором будет храниться имя класса в ситуациях с наследованием одной таблицы.
# File activerecord/lib/active_record/model_schema.rb, line 85
Имя внутренней таблицы метаданных. По умолчанию значение равно "ar_internal_metadata".
# File activerecord/lib/active_record/model_schema.rb, line 91
Устанавливает имя внутренней таблицы метаданных.
# File activerecord/lib/active_record/model_schema.rb, line 97
Указывает, должны ли имена таблиц быть множественными версиями соответствующих имен классов. Если true, имя таблицы по умолчанию для класса Product будет «products». Если false, оно будет просто «product». См. table_name для получения полных правил именования таблиц/классов. По умолчанию — true.
# File activerecord/lib/active_record/model_schema.rb, line 105
Устанавливает, должны ли имена таблиц быть множественными версиями соответствующих имен классов. Если true, имя таблицы по умолчанию для класса Product будет «products». Если false, оно будет просто «product». См. table_name для получения полных правил именования таблиц/классов. По умолчанию — true.
# 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.
# 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.
# File activerecord/lib/active_record/model_schema.rb, line 73
Имя таблицы миграций схемы. По умолчанию значение равно "schema_migrations".
# File activerecord/lib/active_record/model_schema.rb, line 79
Устанавливает имя таблицы миграций схемы.
# File activerecord/lib/active_record/model_schema.rb, line 37
Префиксная строка, добавляемая к каждому имени таблицы.
# File activerecord/lib/active_record/model_schema.rb, line 43
Устанавливает префиксную строку, добавляемую к каждому имени таблицы. Таким образом, если установлено значение «basecamp_», все имена таблиц будут называться «basecamp_projects», «basecamp_people» и т. д. Это удобный способ создания пространства имен для таблиц в общей базе данных. По умолчанию префикс — пустая строка.
Если вы организуете свои модели внутри модулей, вы можете добавить префикс к моделям внутри пространства имен, определив синглтон-метод в родительском модуле, который называется table_name_prefix, возвращающий выбранный вами префикс.
# File activerecord/lib/active_record/model_schema.rb, line 56
Суффиксная строка, добавляемая к каждому имени таблицы.
# File activerecord/lib/active_record/model_schema.rb, line 62
Работает как table_name_prefix=, но добавляет вместо добавления префикса (установка «_basecamp» дает «projects_basecamp», «people_basecamp»). По умолчанию суффикс — пустая строка.
Если вы организуете свои модели внутри модулей, вы можете добавить суффикс к моделям внутри пространства имен, определив синглтон-метод в родительском модуле, который называется table_name_suffix, возвращающий выбранный вами суффикс.
Публичные методы экземпляра
# File activerecord/lib/active_record/model_schema.rb, line 10
Возвращает базовое значение столбца для столбца с именем «id». Полезно при определении составного первичного ключа, включая столбец «id», чтобы значение было читаемым.
© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.