модуль ActiveRecord::ModelSchema
Публичные методы класса
# 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.
# File activerecord/lib/active_record/model_schema.rb, line 106
Имя столбца, по которому упорядочиваются записи, если в вызове ordered finder не указано явное условие сортировки. Если не задано, используется первичный ключ.
# File activerecord/lib/active_record/model_schema.rb, line 113
Устанавливает столбец для сортировки записей, если в вызове ordered finder не указано явное условие сортировки. Полезно, когда первичный ключ не является автоинкрементным целым числом, например, когда это UUID. Записи сортируются по первичному ключу, если он существует, для обеспечения детерминированных результатов.
# File activerecord/lib/active_record/model_schema.rb, line 78
Имя внутреннего метаданных таблицы. По умолчанию значение "ar_internal_metadata".
# File activerecord/lib/active_record/model_schema.rb, line 84
Устанавливает имя внутреннего метаданных таблицы.
# File activerecord/lib/active_record/model_schema.rb, line 90
Указывает, следует ли имена таблиц быть множественными формами соответствующих имен классов. Если true, имя таблицы по умолчанию для класса Product будет «products». Если false, это будет просто «product». См. table_name для полного набора правил именования таблиц/классов. По умолчанию значение true.
# File activerecord/lib/active_record/model_schema.rb, line 98
Указывает, следует ли имена таблиц быть множественными формами соответствующих имен классов. Если true, имя таблицы по умолчанию для класса Product будет «products». Если false, это будет просто «product». См. table_name для полного набора правил именования таблиц/классов. По умолчанию значение true.
# 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.
# 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.
# File activerecord/lib/active_record/model_schema.rb, line 66
Имя таблицы миграций схемы. По умолчанию значение "schema_migrations".
# File activerecord/lib/active_record/model_schema.rb, line 72
Устанавливает имя таблицы миграций схемы.
# File activerecord/lib/active_record/model_schema.rb, line 30
Строка префикса, которая будет добавлена к каждому имени таблицы.
# File activerecord/lib/active_record/model_schema.rb, line 36
Устанавливает строку префикса, которая будет добавлена к каждому имени таблицы. Например, если установить «basecamp_», все имена таблиц будут выглядеть как «basecamp_projects», «basecamp_people» и т. д. Это удобный способ создания пространства имен для таблиц в общей базе данных. По умолчанию префикс — пустая строка.
Если вы организуете свои модели в модулях, вы можете добавить префикс к моделям в пространстве имен, определив метод singleton в родительском модуле под названием table_name_prefix, который вернёт выбранный вами префикс.
# File activerecord/lib/active_record/model_schema.rb, line 49
Строка суффикса, которая будет добавлена к каждому имени таблицы.
# 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.