Module: ActiveRecord

Extended by:
ActiveSupport::Autoload
Includes:
ActiveSupport::Deprecation::DeprecatedConstantAccessor
Defined in:
activerecord/lib/active_record.rb,
activerecord/lib/active_record/base.rb,
activerecord/lib/active_record/core.rb,
activerecord/lib/active_record/enum.rb,
activerecord/lib/active_record/type.rb,
activerecord/lib/active_record/store.rb,
activerecord/lib/active_record/errors.rb,
activerecord/lib/active_record/result.rb,
activerecord/lib/active_record/schema.rb,
activerecord/lib/active_record/explain.rb,
activerecord/lib/active_record/promise.rb,
activerecord/lib/active_record/railtie.rb,
activerecord/lib/active_record/scoping.rb,
activerecord/lib/active_record/version.rb,
activerecord/lib/active_record/fixtures.rb,
activerecord/lib/active_record/querying.rb,
activerecord/lib/active_record/relation.rb,
activerecord/lib/active_record/callbacks.rb,
activerecord/lib/active_record/migration.rb,
activerecord/lib/active_record/signed_id.rb,
activerecord/lib/active_record/timestamp.rb,
activerecord/lib/active_record/token_for.rb,
activerecord/lib/active_record/type/date.rb,
activerecord/lib/active_record/type/json.rb,
activerecord/lib/active_record/type/text.rb,
activerecord/lib/active_record/type/time.rb,
activerecord/lib/active_record/attributes.rb,
activerecord/lib/active_record/deprecator.rb,
activerecord/lib/active_record/encryption.rb,
activerecord/lib/active_record/insert_all.rb,
activerecord/lib/active_record/query_logs.rb,
activerecord/lib/active_record/reflection.rb,
activerecord/lib/active_record/suppressor.rb,
activerecord/lib/active_record/coders/json.rb,
activerecord/lib/active_record/gem_version.rb,
activerecord/lib/active_record/inheritance.rb,
activerecord/lib/active_record/integration.rb,
activerecord/lib/active_record/marshalling.rb,
activerecord/lib/active_record/no_touching.rb,
activerecord/lib/active_record/persistence.rb,
activerecord/lib/active_record/query_cache.rb,
activerecord/lib/active_record/touch_later.rb,
activerecord/lib/active_record/transaction.rb,
activerecord/lib/active_record/translation.rb,
activerecord/lib/active_record/type_caster.rb,
activerecord/lib/active_record/validations.rb,
activerecord/lib/active_record/aggregations.rb,
activerecord/lib/active_record/associations.rb,
activerecord/lib/active_record/message_pack.rb,
activerecord/lib/active_record/model_schema.rb,
activerecord/lib/active_record/sanitization.rb,
activerecord/lib/active_record/secure_token.rb,
activerecord/lib/active_record/transactions.rb,
activerecord/lib/active_record/counter_cache.rb,
activerecord/lib/active_record/future_result.rb,
activerecord/lib/active_record/schema_dumper.rb,
activerecord/lib/active_record/scoping/named.rb,
activerecord/lib/active_record/serialization.rb,
activerecord/lib/active_record/test_fixtures.rb,
activerecord/lib/active_record/type/type_map.rb,
activerecord/lib/active_record/delegated_type.rb,
activerecord/lib/active_record/encryption/key.rb,
activerecord/lib/active_record/log_subscriber.rb,
activerecord/lib/active_record/table_metadata.rb,
activerecord/lib/active_record/test_databases.rb,
activerecord/lib/active_record/type/date_time.rb,
activerecord/lib/active_record/relation/merger.rb,
activerecord/lib/active_record/scoping/default.rb,
activerecord/lib/active_record/secure_password.rb,
activerecord/lib/active_record/statement_cache.rb,
activerecord/lib/active_record/type/serialized.rb,
activerecord/lib/active_record/type_caster/map.rb,
activerecord/lib/active_record/dynamic_matchers.rb,
activerecord/lib/active_record/explain_registry.rb,
activerecord/lib/active_record/fixture_set/file.rb,
activerecord/lib/active_record/relation/batches.rb,
activerecord/lib/active_record/runtime_registry.rb,
activerecord/lib/active_record/schema_migration.rb,
activerecord/lib/rails/generators/active_record.rb,
activerecord/lib/active_record/attribute_methods.rb,
activerecord/lib/active_record/encryption/cipher.rb,
activerecord/lib/active_record/encryption/config.rb,
activerecord/lib/active_record/encryption/errors.rb,
activerecord/lib/active_record/encryption/scheme.rb,
activerecord/lib/active_record/internal_metadata.rb,
activerecord/lib/active_record/nested_attributes.rb,
activerecord/lib/active_record/coders/yaml_column.rb,
activerecord/lib/active_record/encryption/context.rb,
activerecord/lib/active_record/encryption/message.rb,
activerecord/lib/active_record/explain_subscriber.rb,
activerecord/lib/active_record/locking/optimistic.rb,
activerecord/lib/active_record/validations/length.rb,
activerecord/lib/active_record/associations/errors.rb,
activerecord/lib/active_record/connection_adapters.rb,
activerecord/lib/active_record/connection_handling.rb,
activerecord/lib/active_record/encryption/contexts.rb,
activerecord/lib/active_record/legacy_yaml_adapter.rb,
activerecord/lib/active_record/locking/pessimistic.rb,
activerecord/lib/active_record/readonly_attributes.rb,
activerecord/lib/active_record/relation/delegation.rb,
activerecord/lib/active_record/validations/absence.rb,
activerecord/lib/active_record/association_relation.rb,
activerecord/lib/active_record/attribute_assignment.rb,
activerecord/lib/active_record/autosave_association.rb,
activerecord/lib/active_record/encryption/encryptor.rb,
activerecord/lib/active_record/migration/join_table.rb,
activerecord/lib/active_record/query_logs_formatter.rb,
activerecord/lib/active_record/railties/job_runtime.rb,
activerecord/lib/active_record/relation/from_clause.rb,
activerecord/lib/active_record/tasks/abstract_tasks.rb,
activerecord/lib/active_record/tasks/database_tasks.rb,
activerecord/lib/active_record/validations/presence.rb,
activerecord/lib/active_record/encryption/properties.rb,
activerecord/lib/active_record/fixture_set/table_row.rb,
activerecord/lib/active_record/relation/calculations.rb,
activerecord/lib/active_record/relation/where_clause.rb,
activerecord/lib/active_record/type/unsigned_integer.rb,
activerecord/lib/active_record/associations/preloader.rb,
activerecord/lib/active_record/attribute_methods/read.rb,
activerecord/lib/active_record/fixture_set/table_rows.rb,
activerecord/lib/active_record/relation/query_methods.rb,
activerecord/lib/active_record/relation/spawn_methods.rb,
activerecord/lib/active_record/type/internal/timezone.rb,
activerecord/lib/active_record/type_caster/connection.rb,
activerecord/lib/active_record/validations/associated.rb,
activerecord/lib/active_record/validations/uniqueness.rb,
activerecord/lib/active_record/attribute_methods/dirty.rb,
activerecord/lib/active_record/attribute_methods/query.rb,
activerecord/lib/active_record/attribute_methods/write.rb,
activerecord/lib/active_record/database_configurations.rb,
activerecord/lib/active_record/encryption/configurable.rb,
activerecord/lib/active_record/encryption/key_provider.rb,
activerecord/lib/active_record/migration/compatibility.rb,
activerecord/lib/active_record/relation/finder_methods.rb,
activerecord/lib/active_record/associations/association.rb,
activerecord/lib/active_record/coders/column_serializer.rb,
activerecord/lib/active_record/encryption/key_generator.rb,
activerecord/lib/active_record/filter_attribute_handler.rb,
activerecord/lib/active_record/railties/job_checkpoints.rb,
activerecord/lib/active_record/relation/query_attribute.rb,
activerecord/lib/active_record/testing/query_assertions.rb,
activerecord/lib/active_record/validations/numericality.rb,
activerecord/lib/active_record/associations/nested_error.rb,
activerecord/lib/active_record/encryption/null_encryptor.rb,
activerecord/lib/active_record/middleware/shard_selector.rb,
activerecord/lib/active_record/type/hash_lookup_type_map.rb,
activerecord/lib/active_record/associations/alias_tracker.rb,
activerecord/lib/active_record/connection_adapters/column.rb,
activerecord/lib/active_record/fixture_set/model_metadata.rb,
activerecord/lib/active_record/migration/command_recorder.rb,
activerecord/lib/active_record/migration/default_strategy.rb,
activerecord/lib/active_record/relation/predicate_builder.rb,
activerecord/lib/active_record/tasks/mysql_database_tasks.rb,
activerecord/lib/active_record/type/decimal_without_scale.rb,
activerecord/lib/rails/generators/active_record/migration.rb,
activerecord/lib/active_record/railties/controller_runtime.rb,
activerecord/lib/active_record/tasks/sqlite_database_tasks.rb,
activerecord/lib/active_record/associations/join_dependency.rb,
activerecord/lib/active_record/associations/preloader/batch.rb,
activerecord/lib/active_record/asynchronous_queries_tracker.rb,
activerecord/lib/active_record/encryption/cipher/aes256_gcm.rb,
activerecord/lib/active_record/middleware/database_selector.rb,
activerecord/lib/active_record/migration/execution_strategy.rb,
activerecord/lib/active_record/associations/collection_proxy.rb,
activerecord/lib/active_record/associations/preloader/branch.rb,
activerecord/lib/active_record/attribute_methods/primary_key.rb,
activerecord/lib/active_record/destroy_association_async_job.rb,
activerecord/lib/active_record/encryption/encryptable_record.rb,
activerecord/lib/active_record/encryption/encrypted_fixtures.rb,
activerecord/lib/active_record/encryption/message_serializer.rb,
activerecord/lib/active_record/associations/association_scope.rb,
activerecord/lib/active_record/type/adapter_specific_registry.rb,
activerecord/lib/active_record/attribute_methods/serialization.rb,
activerecord/lib/active_record/connection_adapters/pool_config.rb,
activerecord/lib/active_record/tasks/postgresql_database_tasks.rb,
activerecord/lib/active_record/associations/has_one_association.rb,
activerecord/lib/active_record/associations/through_association.rb,
activerecord/lib/active_record/connection_adapters/deduplicable.rb,
activerecord/lib/active_record/connection_adapters/mysql/column.rb,
activerecord/lib/active_record/connection_adapters/pool_manager.rb,
activerecord/lib/active_record/connection_adapters/schema_cache.rb,
activerecord/lib/active_record/associations/has_many_association.rb,
activerecord/lib/active_record/associations/singular_association.rb,
activerecord/lib/active_record/connection_adapters/mysql/quoting.rb,
activerecord/lib/active_record/relation/batches/batch_enumerator.rb,
activerecord/lib/active_record/associations/preloader/association.rb,
activerecord/lib/active_record/attribute_methods/before_type_cast.rb,
activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid.rb,
activerecord/lib/active_record/connection_adapters/sqlite3/column.rb,
activerecord/lib/active_record/connection_adapters/statement_pool.rb,
activerecord/lib/active_record/database_configurations/url_config.rb,
activerecord/lib/active_record/disable_joins_association_relation.rb,
activerecord/lib/active_record/associations/belongs_to_association.rb,
activerecord/lib/active_record/associations/collection_association.rb,
activerecord/lib/active_record/connection_adapters/sqlite3/quoting.rb,
activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb,
activerecord/lib/active_record/connection_adapters/trilogy_adapter.rb,
activerecord/lib/active_record/database_configurations/hash_config.rb,
activerecord/lib/active_record/encryption/auto_filtered_parameters.rb,
activerecord/lib/active_record/encryption/encrypted_attribute_type.rb,
activerecord/lib/active_record/encryption/read_only_null_encryptor.rb,
activerecord/lib/active_record/connection_adapters/abstract/quoting.rb,
activerecord/lib/active_record/connection_adapters/abstract_adapter.rb,
activerecord/lib/active_record/connection_adapters/postgresql/utils.rb,
activerecord/lib/active_record/encryption/encrypting_only_encryptor.rb,
activerecord/lib/active_record/connection_adapters/postgresql/column.rb,
activerecord/lib/active_record/connection_adapters/sql_type_metadata.rb,
activerecord/lib/active_record/encryption/deterministic_key_provider.rb,
activerecord/lib/active_record/middleware/database_selector/resolver.rb,
activerecord/lib/active_record/associations/join_dependency/join_base.rb,
activerecord/lib/active_record/associations/join_dependency/join_part.rb,
activerecord/lib/active_record/attribute_methods/time_zone_conversion.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/bit.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/oid.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/xml.rb,
activerecord/lib/active_record/connection_adapters/postgresql/quoting.rb,
activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb,
activerecord/lib/active_record/encryption/derived_secret_key_provider.rb,
activerecord/lib/active_record/migration/pending_migration_connection.rb,
activerecord/lib/rails/generators/active_record/model/model_generator.rb,
activerecord/lib/active_record/attribute_methods/composite_primary_key.rb,
activerecord/lib/active_record/connection_adapters/abstract/savepoints.rb,
activerecord/lib/active_record/connection_adapters/mysql/schema_dumper.rb,
activerecord/lib/active_record/connection_adapters/mysql/type_metadata.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/cidr.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/date.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/enum.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/inet.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/uuid.rb,
activerecord/lib/active_record/database_configurations/database_config.rb,
activerecord/lib/active_record/associations/has_one_through_association.rb,
activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb,
activerecord/lib/active_record/connection_adapters/abstract/transaction.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/array.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/bytea.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/jsonb.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/money.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/point.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/range.rb,
activerecord/lib/active_record/relation/predicate_builder/array_handler.rb,
activerecord/lib/active_record/relation/predicate_builder/range_handler.rb,
activerecord/lib/active_record/associations/has_many_through_association.rb,
activerecord/lib/active_record/connection_adapters/mysql/schema_creation.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/hstore.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/vector.rb,
activerecord/lib/active_record/connection_adapters/sqlite3/schema_dumper.rb,
activerecord/lib/active_record/encryption/extended_deterministic_queries.rb,
activerecord/lib/active_record/associations/preloader/through_association.rb,
activerecord/lib/active_record/connection_adapters/abstract/schema_dumper.rb,
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/decimal.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/macaddr.rb,
activerecord/lib/active_record/encryption/message_pack_message_serializer.rb,
activerecord/lib/active_record/connection_adapters/mysql/schema_statements.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/interval.rb,
activerecord/lib/active_record/connection_adapters/sqlite3/schema_creation.rb,
activerecord/lib/active_record/encryption/envelope_encryption_key_provider.rb,
activerecord/lib/active_record/migration/default_schema_versions_formatter.rb,
activerecord/lib/active_record/relation/predicate_builder/relation_handler.rb,
activerecord/lib/active_record/associations/disable_joins_association_scope.rb,
activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb,
activerecord/lib/active_record/connection_adapters/abstract/database_limits.rb,
activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rb,
activerecord/lib/active_record/connection_adapters/mysql/schema_definitions.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/date_time.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/timestamp.rb,
activerecord/lib/active_record/connection_adapters/postgresql/schema_dumper.rb,
activerecord/lib/active_record/connection_adapters/postgresql/type_metadata.rb,
activerecord/lib/rails/generators/active_record/multi_db/multi_db_generator.rb,
activerecord/lib/active_record/associations/join_dependency/join_association.rb,
activerecord/lib/active_record/connection_adapters/mysql/database_statements.rb,
activerecord/lib/active_record/connection_adapters/sqlite3/schema_statements.rb,
activerecord/lib/active_record/middleware/database_selector/resolver/session.rb,
activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb,
activerecord/lib/active_record/connection_adapters/mysql2/database_statements.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/bit_varying.rb,
activerecord/lib/active_record/connection_adapters/postgresql/schema_creation.rb,
activerecord/lib/active_record/connection_adapters/sqlite3/schema_definitions.rb,
activerecord/lib/rails/generators/active_record/migration/migration_generator.rb,
activerecord/lib/active_record/associations/belongs_to_polymorphic_association.rb,
activerecord/lib/active_record/connection_adapters/abstract/connection_handler.rb,
activerecord/lib/active_record/connection_adapters/abstract/schema_definitions.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/legacy_point.rb,
activerecord/lib/active_record/connection_adapters/sqlite3/database_statements.rb,
activerecord/lib/active_record/connection_adapters/trilogy/database_statements.rb,
activerecord/lib/active_record/database_configurations/connection_url_resolver.rb,
activerecord/lib/active_record/relation/predicate_builder/basic_object_handler.rb,
activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb,
activerecord/lib/active_record/connection_adapters/mysql/explain_pretty_printer.rb,
activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb,
activerecord/lib/active_record/connection_adapters/postgresql/schema_definitions.rb,
activerecord/lib/active_record/connection_adapters/abstract/connection_pool/queue.rb,
activerecord/lib/active_record/connection_adapters/postgresql/database_statements.rb,
activerecord/lib/active_record/connection_adapters/sqlite3/explain_pretty_printer.rb,
activerecord/lib/active_record/relation/predicate_builder/association_query_value.rb,
activerecord/lib/active_record/relation/predicate_builder/polymorphic_array_value.rb,
activerecord/lib/active_record/connection_adapters/abstract/connection_pool/reaper.rb,
activerecord/lib/active_record/connection_adapters/postgresql/referential_integrity.rb,
activerecord/lib/active_record/connection_adapters/postgresql/explain_pretty_printer.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/specialized_string.rb,
activerecord/lib/active_record/encryption/extended_deterministic_uniqueness_validator.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/type_map_initializer.rb,
activerecord/lib/active_record/connection_adapters/postgresql/oid/timestamp_with_time_zone.rb,
activerecord/lib/rails/generators/active_record/application_record/application_record_generator.rb

Overview

:markup: markdown

Defined Under Namespace

Modules: Aggregations, Assertions, Associations, AttributeAssignment, AttributeMethods, Attributes, AutosaveAssociation, Batches, Calculations, Callbacks, Coders, ConnectionAdapters, ConnectionHandling, Core, CounterCache, DelegatedType, Delegation, DynamicMatchers, Encryption, Enum, Explain, FinderMethods, Generators, Inheritance, Integration, LegacyYamlAdapter, Locking, Marshalling, MessagePack, Middleware, ModelSchema, NestedAttributes, NoTouching, Persistence, QueryLogs, QueryMethods, Querying, Railties, ReadonlyAttributes, Reflection, RuntimeRegistry, Sanitization, Scoping, SecurePassword, SecureToken, Serialization, SignedId, SpawnMethods, Store, Suppressor, Tasks, TestDatabases, TestFixtures, Timestamp, TokenFor, TouchLater, Transactions, Translation, Type, TypeCaster, VERSION, Validations Classes: ActiveRecordError, AdapterError, AdapterNotFound, AdapterNotSpecified, AdapterTimeout, AmbiguousSourceReflectionForThroughAssociation, AssociationNotFoundError, AssociationRelation, AssociationTypeMismatch, AsynchronousQueriesTracker, AsynchronousQueryInsideTransactionError, AttributeAssignmentError, Base, CheckViolation, CompositePrimaryKeyMismatchError, ConcurrentMigrationError, ConfigurationError, ConnectionFailed, ConnectionNotDefined, ConnectionNotEstablished, ConnectionTimeoutError, DangerousAttributeError, DatabaseAlreadyExists, DatabaseConfigurations, DatabaseConnectionError, DatabaseVersionError, Deadlocked, DeleteRestrictionError, DeprecatedAssociationError, DestroyAssociationAsyncError, DestroyAssociationAsyncJob, DisableJoinsAssociationRelation, DuplicateMigrationNameError, DuplicateMigrationVersionError, EagerLoadPolymorphicError, EnvironmentMismatchError, EnvironmentStorageError, ExclusionViolation, ExclusiveConnectionTimeoutError, ExplainRegistry, ExplainSubscriber, FilterAttributeHandler, Fixture, FixtureClassNotFound, FixtureSet, FutureResult, HasManyThroughAssociationNotFoundError, HasManyThroughAssociationPointlessSourceTypeError, HasManyThroughAssociationPolymorphicSourceError, HasManyThroughAssociationPolymorphicThroughError, HasManyThroughCantAssociateThroughHasOneOrManyReflection, HasManyThroughNestedAssociationsAreReadonly, HasManyThroughOrderError, HasManyThroughSourceAssociationNotFoundError, HasOneAssociationPolymorphicThroughError, HasOneThroughCantAssociateThroughCollection, HasOneThroughCantAssociateThroughHasOneOrManyReflection, HasOneThroughNestedAssociationsAreReadonly, IllegalMigrationNameError, InsertAll, InternalMetadata, InvalidForeignKey, InvalidMigrationTimestampError, InverseOfAssociationNotFoundError, InverseOfAssociationRecursiveError, IrreversibleMigration, IrreversibleOrderError, LockWaitTimeout, LogSubscriber, Migration, MigrationContext, MigrationError, MigrationProxy, Migrator, MismatchedForeignKey, MissingRequiredOrderError, MultiparameterAssignmentErrors, NoDatabaseError, NoEnvironmentInSchemaError, NotNullViolation, PendingMigrationConnection, PendingMigrationError, Point, PredicateBuilder, PreparedStatementCacheExpired, PreparedStatementInvalid, Promise, ProtectedEnvironmentError, QueryAborted, QueryCache, QueryCanceled, Railtie, RangeError, ReadOnlyError, ReadOnlyRecord, ReadonlyAttributeError, RecordInvalid, RecordNotDestroyed, RecordNotFound, RecordNotSaved, RecordNotUnique, Relation, Result, Rollback, SQLWarning, Schema, SchemaDumper, SchemaMigration, SerializationFailure, SerializationTypeMismatch, SoleRecordExceeded, StaleObjectError, StatementCache, StatementInvalid, StatementTimeout, StrictLoadingViolationError, SubclassNotFound, TableMetadata, TableNotSpecified, ThroughCantAssociateThroughHasOneOrManyReflection, ThroughNestedAssociationsAreReadonly, Transaction, TransactionIsolationError, TransactionRollbackError, TypeConflictError, UnknownAttributeReference, UnknownMigrationVersionError, UnknownPrimaryKey, UnmodifiableRelation, ValueTooLong, WrappedDatabaseException

Constant Summary collapse

UnknownAttributeError =

Raised when unknown attributes are supplied via mass assignment.

ActiveModel::UnknownAttributeError

Instance Attribute Summary collapse

Class Method Summary collapse

Methods included from ActiveSupport::Autoload

autoload, autoload_at, autoload_under, eager_autoload, eager_load!

Methods included from ActiveSupport::Deprecation::DeprecatedConstantAccessor

included

Instance Attribute Details

#action_on_strict_loading_violationObject

:singleton-method: action_on_strict_loading_violation Set the application to log or raise when an association violates strict loading. Defaults to :raise.



370
371
372
# File 'activerecord/lib/active_record.rb', line 370

def action_on_strict_loading_violation
  @action_on_strict_loading_violation
end

#application_record_classObject

Returns the value of attribute application_record_class.



363
364
365
# File 'activerecord/lib/active_record.rb', line 363

def application_record_class
  @application_record_class
end

#async_query_executorObject

:singleton-method: async_query_executor Sets the async_query_executor for an application. By default the thread pool executor set to nil which will not run queries in the background. Applications must configure a thread pool executor to use this feature. Options are:

* nil - Does not initialize a thread pool executor. Any async calls will be
run in the foreground.
* :global_thread_pool - Initializes a single +Concurrent::ThreadPoolExecutor+
that uses the +async_query_concurrency+ for the +max_threads+ value.
* :multi_thread_pool - Initializes a +Concurrent::ThreadPoolExecutor+ for each
database connection. The initializer values are defined in the configuration hash.


288
289
290
# File 'activerecord/lib/active_record.rb', line 288

def async_query_executor
  @async_query_executor
end

#before_committed_on_all_recordsObject

Returns the value of attribute before_committed_on_all_records.



354
355
356
# File 'activerecord/lib/active_record.rb', line 354

def before_committed_on_all_records
  @before_committed_on_all_records
end

#belongs_to_required_validates_foreign_keyObject

Returns the value of attribute belongs_to_required_validates_foreign_key.



351
352
353
# File 'activerecord/lib/active_record.rb', line 351

def belongs_to_required_validates_foreign_key
  @belongs_to_required_validates_foreign_key
end

#database_cliObject

Returns the value of attribute database_cli.



213
214
215
# File 'activerecord/lib/active_record.rb', line 213

def database_cli
  @database_cli
end

#db_warnings_actionObject (readonly)

:singleton-method: db_warnings_action The action to take when database query produces warning. Must be one of :ignore, :log, :raise, :report, or a custom proc. The default is :ignore.



235
236
237
# File 'activerecord/lib/active_record.rb', line 235

def db_warnings_action
  @db_warnings_action
end

#db_warnings_ignoreObject

:singleton-method: db_warnings_ignore Specify allowlist of database warnings. Can be a string, regular expression, or an error code from the database.

ActiveRecord::Base.db_warnings_ignore = [/`SHOW WARNINGS` did not return the warnings/, "01000"]


267
268
269
# File 'activerecord/lib/active_record.rb', line 267

def db_warnings_ignore
  @db_warnings_ignore
end

#default_timezoneObject (readonly)

Returns the value of attribute default_timezone.



216
217
218
# File 'activerecord/lib/active_record.rb', line 216

def default_timezone
  @default_timezone
end

#disable_prepared_statementsObject

Returns the value of attribute disable_prepared_statements.



184
185
186
# File 'activerecord/lib/active_record.rb', line 184

def disable_prepared_statements
  @disable_prepared_statements
end

#dump_schema_after_migrationObject

:singleton-method: dump_schema_after_migration Specify whether schema dump should happen at the end of the bin/rails db:migrate command. This is true by default, which is useful for the development environment. This should ideally be false in the production environment where dumping schema is rarely needed.



425
426
427
# File 'activerecord/lib/active_record.rb', line 425

def dump_schema_after_migration
  @dump_schema_after_migration
end

#dump_schemasObject

:singleton-method: dump_schemas Specifies which database schemas to dump when calling db:schema:dump. If the value is :schema_search_path (the default), any schemas listed in schema_search_path are dumped. Use :all to dump all schemas regardless of schema_search_path, or a string of comma separated schemas for a custom list.



435
436
437
# File 'activerecord/lib/active_record.rb', line 435

def dump_schemas
  @dump_schemas
end

#error_on_ignored_orderObject

:singleton-method: error_on_ignored_order Specifies if an error should be raised if the query has an order being ignored when doing batch queries. Useful in applications where the scope being ignored is error-worthy, rather than a warning.



390
391
392
# File 'activerecord/lib/active_record.rb', line 390

def error_on_ignored_order
  @error_on_ignored_order
end

#generate_secure_token_onObject

:singleton-method: generate_secure_token_on Controls when to generate a value for has_secure_token declarations. Defaults to :create.



476
477
478
# File 'activerecord/lib/active_record.rb', line 476

def generate_secure_token_on
  @generate_secure_token_on
end

#index_nested_attribute_errorsObject

Returns the value of attribute index_nested_attribute_errors.



327
328
329
# File 'activerecord/lib/active_record.rb', line 327

def index_nested_attribute_errors
  @index_nested_attribute_errors
end

#lazily_load_schema_cacheObject

:singleton-method: lazily_load_schema_cache Lazily load the schema cache. This option will load the schema cache when a connection is established rather than on boot.



191
192
193
# File 'activerecord/lib/active_record.rb', line 191

def lazily_load_schema_cache
  @lazily_load_schema_cache
end

#maintain_test_schemaObject

Returns the value of attribute maintain_test_schema.



345
346
347
# File 'activerecord/lib/active_record.rb', line 345

def maintain_test_schema
  @maintain_test_schema
end

#message_verifiersObject

:singleton-method: message_verifiers

ActiveSupport::MessageVerifiers instance for Active Record. If you are using Rails, this will be set to Rails.application.message_verifiers.



543
544
545
# File 'activerecord/lib/active_record.rb', line 543

def message_verifiers
  @message_verifiers
end

#migration_strategyObject

:singleton-method: migration_strategy Specify strategy to use for executing migrations.



410
411
412
# File 'activerecord/lib/active_record.rb', line 410

def migration_strategy
  @migration_strategy
end

#permanent_connection_checkoutObject (readonly)

Returns the value of attribute permanent_connection_checkout.



317
318
319
# File 'activerecord/lib/active_record.rb', line 317

def permanent_connection_checkout
  @permanent_connection_checkout
end

#protocol_adaptersObject

:singleton-method: protocol_adapters Provides a mapping between database protocols/DBMSs and the underlying database adapter to be used. This is used only by the DATABASE_URL environment variable.

Example

DATABASE_URL="mysql://myuser:mypass@localhost/somedatabase"

The above URL specifies that MySQL is the desired protocol/DBMS, and the application configuration can then decide which adapter to use. For this example the default mapping is from mysql to mysql2, but :trilogy is also supported.

ActiveRecord.protocol_adapters.mysql = "mysql2"

The protocols names are arbitrary, and external database adapters can be registered and set here.



529
530
531
# File 'activerecord/lib/active_record.rb', line 529

def protocol_adapters
  @protocol_adapters
end

#query_transformersObject

Returns the value of attribute query_transformers.



447
448
449
# File 'activerecord/lib/active_record.rb', line 447

def query_transformers
  @query_transformers
end

#queuesObject

:singleton-method: queues

Specifies the names of the queues used by background jobs.



342
343
344
# File 'activerecord/lib/active_record.rb', line 342

def queues
  @queues
end

#raise_int_wider_than_64bitObject

:singleton-method: raise_int_wider_than_64bit Application configurable boolean that denotes whether or not to raise an exception when the PostgreSQLAdapter is provided with an integer that is wider than signed 64bit representation



462
463
464
# File 'activerecord/lib/active_record.rb', line 462

def raise_int_wider_than_64bit
  @raise_int_wider_than_64bit
end

#raise_on_assign_to_attr_readonlyObject

Returns the value of attribute raise_on_assign_to_attr_readonly.



348
349
350
# File 'activerecord/lib/active_record.rb', line 348

def raise_on_assign_to_attr_readonly
  @raise_on_assign_to_attr_readonly
end

#raise_on_missing_required_finder_order_columnsObject

Returns the value of attribute raise_on_missing_required_finder_order_columns.



360
361
362
# File 'activerecord/lib/active_record.rb', line 360

def raise_on_missing_required_finder_order_columns
  @raise_on_missing_required_finder_order_columns
end

#reading_roleObject

Returns the value of attribute reading_role.



273
274
275
# File 'activerecord/lib/active_record.rb', line 273

def reading_role
  @reading_role
end

#run_after_transaction_callbacks_in_order_definedObject

Returns the value of attribute run_after_transaction_callbacks_in_order_defined.



357
358
359
# File 'activerecord/lib/active_record.rb', line 357

def run_after_transaction_callbacks_in_order_defined
  @run_after_transaction_callbacks_in_order_defined
end

#schema_cache_ignored_tablesObject

:singleton-method: schema_cache_ignored_tables A list of tables or regex’s to match tables to ignore when dumping the schema cache. For example if this is set to [/^_/] the schema cache will not dump tables named with an underscore.



199
200
201
# File 'activerecord/lib/active_record.rb', line 199

def schema_cache_ignored_tables
  @schema_cache_ignored_tables
end

#schema_formatObject

:singleton-method: schema_format Specifies the format to use when dumping the database schema with Rails’ Rakefile. If :sql, the schema is dumped as (potentially database- specific) SQL statements. If :ruby, the schema is dumped as an ActiveRecord::Schema file which can be loaded into any database that supports migrations. Use :ruby if you want to have different database adapters for, e.g., your development and test environments. This can be overridden per-database in the database configuration.



382
383
384
# File 'activerecord/lib/active_record.rb', line 382

def schema_format
  @schema_format
end

#schema_versions_formatterObject

:singleton-method: schema_versions_formatter Specify the formatter used by schema dumper to format versions information.



416
417
418
# File 'activerecord/lib/active_record.rb', line 416

def schema_versions_formatter
  @schema_versions_formatter
end

#timestamped_migrationsObject

:singleton-method: timestamped_migrations Specify whether or not to use timestamps for migration versions



396
397
398
# File 'activerecord/lib/active_record.rb', line 396

def timestamped_migrations
  @timestamped_migrations
end

#use_yaml_unsafe_loadObject

:singleton-method: use_yaml_unsafe_load Application configurable boolean that instructs the YAML Coder to use an unsafe load if set to true.



454
455
456
# File 'activerecord/lib/active_record.rb', line 454

def use_yaml_unsafe_load
  @use_yaml_unsafe_load
end

#validate_migration_timestampsObject

:singleton-method: validate_migration_timestamps Specify whether or not to validate migration timestamps. When set, an error will be raised if a timestamp is more than a day ahead of the timestamp associated with the current time. timestamped_migrations must be set to true.



404
405
406
# File 'activerecord/lib/active_record.rb', line 404

def validate_migration_timestamps
  @validate_migration_timestamps
end

#verbose_query_logsObject

:singleton-method: verbose_query_logs

Specifies if the methods calling database queries should be logged below their relevant queries. Defaults to false.



335
336
337
# File 'activerecord/lib/active_record.rb', line 335

def verbose_query_logs
  @verbose_query_logs
end

#verify_foreign_keys_for_fixturesObject

:singleton-method: verify_foreign_keys_for_fixtures If true, Rails will verify all foreign keys in the database after loading fixtures. An error will be raised if there are any foreign key violations, indicating incorrectly written fixtures. Supported by PostgreSQL and SQLite.



444
445
446
# File 'activerecord/lib/active_record.rb', line 444

def verify_foreign_keys_for_fixtures
  @verify_foreign_keys_for_fixtures
end

#writing_roleObject

Returns the value of attribute writing_role.



270
271
272
# File 'activerecord/lib/active_record.rb', line 270

def writing_role
  @writing_role
end

#yaml_column_permitted_classesObject

:singleton-method: yaml_column_permitted_classes Application configurable array that provides additional permitted classes to Psych safe_load in the YAML Coder



469
470
471
# File 'activerecord/lib/active_record.rb', line 469

def yaml_column_permitted_classes
  @yaml_column_permitted_classes
end

Class Method Details

.after_all_transactions_commit(&block) ⇒ Object

Registers a block to be called after all the current transactions have been committed.

If there is no currently open transaction, the block is called immediately.

If there are multiple nested transactions, the block is called after the outermost one has been committed,

If any of the currently open transactions is rolled back, the block is never called.

If multiple transactions are open across multiple databases, the block will be invoked if and once all of them have been committed. But note that nesting transactions across two distinct databases is a sharding anti-pattern that comes with a world of hurts.



573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
# File 'activerecord/lib/active_record.rb', line 573

def self.after_all_transactions_commit(&block)
  open_transactions = all_open_transactions

  if open_transactions.empty?
    yield
  elsif open_transactions.size == 1
    open_transactions.first.after_commit(&block)
  else
    count = open_transactions.size
    callback = -> do
      count -= 1
      block.call if count.zero?
    end
    open_transactions.each do |t|
      t.after_commit(&callback)
    end
    open_transactions = nil # rubocop:disable Lint/UselessAssignment avoid holding it in the closure
  end
end

.all_open_transactionsObject

:nodoc:



593
594
595
596
597
598
599
600
601
602
603
604
605
# File 'activerecord/lib/active_record.rb', line 593

def self.all_open_transactions # :nodoc:
  open_transactions = []
  Base.connection_handler.each_connection_pool do |pool|
    if active_connection = pool.active_connection
      current_transaction = active_connection.current_transaction

      if current_transaction.open? && current_transaction.joinable?
        open_transactions << current_transaction
      end
    end
  end
  open_transactions
end

.db_warnings_action=(action) ⇒ Object



237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
# File 'activerecord/lib/active_record.rb', line 237

def self.db_warnings_action=(action)
  @db_warnings_action =
    case action
    when :ignore
      nil
    when :log
      ->(warning) do
        warning_message = "[#{warning.class}] #{warning.message}"
        warning_message += " (#{warning.code})" if warning.code
        ActiveRecord::Base.logger.warn(warning_message)
      end
    when :raise
      ->(warning) { raise warning }
    when :report
      ->(warning) { Rails.error.report(warning, handled: true) }
    when Proc
      action
    else
      raise ArgumentError, "db_warnings_action must be one of :ignore, :log, :raise, :report, or a custom proc."
    end
end

.default_timezone=(default_timezone) ⇒ Object

Determines whether to use Time.utc (using :utc) or Time.local (using :local) when pulling dates and times from the database. This is set to :utc by default.



220
221
222
223
224
225
226
# File 'activerecord/lib/active_record.rb', line 220

def self.default_timezone=(default_timezone)
  unless %i(local utc).include?(default_timezone)
    raise ArgumentError, "default_timezone must be either :utc (default) or :local."
  end

  @default_timezone = default_timezone
end

.default_transaction_isolation_levelObject

:nodoc:



611
612
613
# File 'activerecord/lib/active_record.rb', line 611

def self.default_transaction_isolation_level # :nodoc:
  ActiveSupport::IsolatedExecutionState[:active_record_transaction_isolation]
end

.default_transaction_isolation_level=(isolation_level) ⇒ Object

:nodoc:



607
608
609
# File 'activerecord/lib/active_record.rb', line 607

def self.default_transaction_isolation_level=(isolation_level) # :nodoc:
  ActiveSupport::IsolatedExecutionState[:active_record_transaction_isolation] = isolation_level
end

.deprecated_associations_optionsObject



495
496
497
498
499
500
# File 'activerecord/lib/active_record.rb', line 495

def self.deprecated_associations_options
  {
    mode: ActiveRecord::Associations::Deprecation.mode,
    backtrace: ActiveRecord::Associations::Deprecation.backtrace
  }
end

.deprecated_associations_options=(options) ⇒ Object

Raises:

  • (ArgumentError)


479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
# File 'activerecord/lib/active_record.rb', line 479

def self.deprecated_associations_options=(options)
  raise ArgumentError, "deprecated_associations_options must be a hash" unless options.is_a?(Hash)

  valid_keys = [:mode, :backtrace]

  invalid_keys = options.keys - valid_keys
  unless invalid_keys.empty?
    inflected_key = invalid_keys.size == 1 ? "key" : "keys"
    raise ArgumentError, "invalid deprecated_associations_options #{inflected_key} #{invalid_keys.map(&:inspect).to_sentence} (valid keys are #{valid_keys.map(&:inspect).to_sentence})"
  end

  options.each do |key, value|
    ActiveRecord::Associations::Deprecation.send("#{key}=", value)
  end
end

.deprecatorObject

:nodoc:



4
5
6
# File 'activerecord/lib/active_record/deprecator.rb', line 4

def self.deprecator # :nodoc:
  @deprecator ||= ActiveSupport::Deprecation.new
end

.disconnect_all!Object

Explicitly closes all database connections in all pools.



556
557
558
# File 'activerecord/lib/active_record.rb', line 556

def self.disconnect_all!
  ConnectionAdapters::PoolConfig.disconnect_all!
end

.eager_load!Object



545
546
547
548
549
550
551
552
553
# File 'activerecord/lib/active_record.rb', line 545

def self.eager_load!
  super
  ActiveRecord::Locking.eager_load!
  ActiveRecord::Scoping.eager_load!
  ActiveRecord::Associations.eager_load!
  ActiveRecord::AttributeMethods.eager_load!
  ActiveRecord::ConnectionAdapters.eager_load!
  ActiveRecord::Encryption.eager_load!
end

.gem_versionObject

Returns the currently loaded version of Active Record as a Gem::Version.



5
6
7
# File 'activerecord/lib/active_record/gem_version.rb', line 5

def self.gem_version
  Gem::Version.new VERSION::STRING
end

.global_executor_concurrencyObject

:nodoc:



312
313
314
# File 'activerecord/lib/active_record.rb', line 312

def self.global_executor_concurrency # :nodoc:
  @global_executor_concurrency ||= nil
end

.global_executor_concurrency=(global_executor_concurrency) ⇒ Object

Set the global_executor_concurrency. This configuration value can only be used with the global thread pool async query executor.



304
305
306
307
308
309
310
# File 'activerecord/lib/active_record.rb', line 304

def self.global_executor_concurrency=(global_executor_concurrency)
  if self.async_query_executor.nil? || self.async_query_executor == :multi_thread_pool
    raise ArgumentError, "`global_executor_concurrency` cannot be set when the executor is nil or set to `:multi_thread_pool`. For multiple thread pools, please set the concurrency in your database configuration."
  end

  @global_executor_concurrency = global_executor_concurrency
end

.global_thread_pool_async_query_executorObject

:nodoc:



291
292
293
294
295
296
297
298
299
300
# File 'activerecord/lib/active_record.rb', line 291

def self.global_thread_pool_async_query_executor # :nodoc:
  concurrency = global_executor_concurrency || 4
  @global_thread_pool_async_query_executor ||= Concurrent::ThreadPoolExecutor.new(
    name: "ActiveRecord-global-async-query-executor",
    min_threads: 0,
    max_threads: concurrency,
    max_queue: concurrency * 4,
    fallback_policy: :caller_runs
  )
end

.marshalling_format_versionObject



502
503
504
# File 'activerecord/lib/active_record.rb', line 502

def self.marshalling_format_version
  Marshalling.format_version
end

.marshalling_format_version=(value) ⇒ Object



506
507
508
# File 'activerecord/lib/active_record.rb', line 506

def self.marshalling_format_version=(value)
  Marshalling.format_version = value
end

.permanent_connection_checkout=(value) ⇒ Object

Defines whether ActiveRecord::Base.connection is allowed, deprecated, or entirely disallowed.



320
321
322
323
324
325
# File 'activerecord/lib/active_record.rb', line 320

def self.permanent_connection_checkout=(value)
  unless [true, :deprecated, :disallowed].include?(value)
    raise ArgumentError, "permanent_connection_checkout must be one of: `true`, `:deprecated` or `:disallowed`"
  end
  @permanent_connection_checkout = value
end

.schema_cache_ignored_table?(table_name) ⇒ Boolean

Checks to see if the table_name is ignored by checking against the schema_cache_ignored_tables option.

ActiveRecord.schema_cache_ignored_table?(:developers)

Returns:

  • (Boolean)


207
208
209
210
211
# File 'activerecord/lib/active_record.rb', line 207

def self.schema_cache_ignored_table?(table_name)
  ActiveRecord.schema_cache_ignored_tables.any? do |ignored|
    ignored === table_name
  end
end

.versionObject

Returns the currently loaded version of Active Record as a Gem::Version.



7
8
9
# File 'activerecord/lib/active_record/version.rb', line 7

def self.version
  gem_version
end

.with_transaction_isolation_level(isolation_level, &block) ⇒ Object

Sets a transaction isolation level for all connection pools within the block.



616
617
618
619
620
621
622
# File 'activerecord/lib/active_record.rb', line 616

def self.with_transaction_isolation_level(isolation_level, &block)
  original_level = self.default_transaction_isolation_level
  self.default_transaction_isolation_level = isolation_level
  yield
ensure
  self.default_transaction_isolation_level = original_level
end