модуль ActiveRecord::ModelSchema
Публичные методы класса
# File activerecord/lib/active_record/model_schema.rb, line 131
Определяет, следует ли выводить тип столбцов как :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).
По умолчанию записи дополнительно сортируются по первичному ключу, чтобы обеспечить детерминированные результаты. Чтобы отключить такую дополнительную сортировку, задайте для ‘implicit_order_column` значение `[“column_name”, nil]`.
# 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
# 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 Задает имя столбца таблицы, в котором будет храниться имя класса при использовании наследования с одной таблицей.
# 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 Record.
# 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.
# 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.