1. Upgrading to Rails 8.1
If you're upgrading an existing application, it's a great idea to have good test coverage before going in. You should also first upgrade to Rails 8.0 in case you haven't and make sure your application still runs as expected before attempting an update to Rails 8.1. A list of things to watch out for when upgrading is available in the Upgrading Ruby on Rails guide.
2. Major Features
3. Railties
Please refer to the Changelog for detailed changes.
3.1. Removals
Remove deprecated
Rails::Generators::Testing::Behaviour.Remove deprecated
Rails.application.secrets.Remove deprecated
Rails.config.enable_dependency_loading.Remove deprecated
find_cmd_and_execconsole helper.
3.2. Deprecations
3.3. Notable changes
4. Action Cable
Please refer to the Changelog for detailed changes.
4.1. Removals
4.2. Deprecations
4.3. Notable changes
5. Action Pack
Please refer to the Changelog for detailed changes.
5.1. Removals
Remove deprecated constant
ActionDispatch::IllegalStateError.Remove deprecated constant
AbstractController::Helpers::MissingHelperError.Remove deprecated comparison between
ActionController::ParametersandHash.Remove deprecated
Rails.application.config.action_dispatch.return_only_request_media_type_on_content_type.Remove deprecated
speaker,vibrate, andvrpermissions policy directives.Remove deprecated support to set
Rails.application.config.action_dispatch.show_exceptionstotrueandfalse.
5.2. Deprecations
- Deprecate
Rails.application.config.action_controller.allow_deprecated_parameters_hash_equality.
5.3. Notable changes
6. Action View
Please refer to the Changelog for detailed changes.
6.1. Removals
- Remove deprecated
@rails/ujsin favor ofTurbo.
6.2. Deprecations
- Deprecate passing content to void elements when using
tag.brtype tag builders.
6.3. Notable changes
7. Action Mailer
Please refer to the Changelog for detailed changes.
7.1. Removals
Remove deprecated
config.action_mailer.preview_path.Remove deprecated params via
:argsforassert_enqueued_email_with.
7.2. Deprecations
7.3. Notable changes
8. Active Record
Please refer to the Changelog for detailed changes.
8.1. Removals
Remove deprecated
Rails.application.config.active_record.suppress_multiple_database_warning.Remove deprecated support to call
alias_attributewith non-existent attribute names.Remove deprecated
nameargument fromActiveRecord::Base.remove_connection.Remove deprecated
ActiveRecord::Base.clear_active_connections!.Remove deprecated
ActiveRecord::Base.clear_reloadable_connections!.Remove deprecated
ActiveRecord::Base.clear_all_connections!.Remove deprecated
ActiveRecord::Base.flush_idle_connections!.Remove deprecated
ActiveRecord::ActiveJobRequiredError.Remove deprecated support to define
explainin the connection adapter with 2 arguments.Remove deprecated
ActiveRecord::LogSubscriber.runtimemethod.Remove deprecated
ActiveRecord::LogSubscriber.runtime=method.Remove deprecated
ActiveRecord::LogSubscriber.reset_runtimemethod.Remove deprecated
ActiveRecord::Migration.check_pendingmethod.Remove deprecated support to passing
SchemaMigrationandInternalMetadataclasses as arguments toActiveRecord::MigrationContext.Remove deprecated behavior to support referring to a singular association by its plural name.
Remove deprecated
TestFixtures.fixture_path.Remove deprecated support to
ActiveRecord::Base#read_attribute(:id)to return the custom primary key value.Remove deprecated support to passing coder and class as second argument to
serialize.Remove deprecated
#all_foreign_keys_valid?from database adapters.Remove deprecated
ActiveRecord::ConnectionAdapters::SchemaCache.load_from.Remove deprecated
ActiveRecord::ConnectionAdapters::SchemaCache#data_sources.Remove deprecated
#all_connection_pools.Remove deprecated support to apply
#connection_pool_list,#active_connections?,#clear_active_connections!,#clear_reloadable_connections!,#clear_all_connections!and#flush_idle_connections!to the connections pools for the current role when theroleargument isn't provided.Remove deprecated
ActiveRecord::ConnectionAdapters::ConnectionPool#connection_klass.Remove deprecated
#quote_bound_value.Remove deprecated support to quote
ActiveSupport::Duration.Remove deprecated support to pass
deferrable: truetoadd_foreign_key.Remove deprecated support to pass
rewheretoActiveRecord::Relation#merge.Remove deprecated behavior that would rollback a transaction block when exited using
return,breakorthrow.
8.2. Deprecations
Deprecate
Rails.application.config.active_record.allow_deprecated_singular_associations_nameDeprecate
Rails.application.config.active_record.commit_transaction_on_non_local_return
8.3. Notable changes
9. Active Storage
Please refer to the Changelog for detailed changes.
9.1. Removals
Remove deprecated
config.active_storage.replace_on_assign_to_many.Remove deprecated
config.active_storage.silence_invalid_content_types_warning.
9.2. Deprecations
9.3. Notable changes
10. Active Model
Please refer to the Changelog for detailed changes.
10.1. Removals
10.2. Deprecations
10.3. Notable changes
11. Active Support
Please refer to the Changelog for detailed changes.
11.1. Removals
Remove deprecated
ActiveSupport::Notifications::Event#childrenandActiveSupport::Notifications::Event#parent_of?.Remove deprecated support to call the following methods without passing a deprecator:
deprecatedeprecate_constantActiveSupport::Deprecation::DeprecatedObjectProxy.newActiveSupport::Deprecation::DeprecatedInstanceVariableProxy.newActiveSupport::Deprecation::DeprecatedConstantProxy.newassert_deprecatedassert_not_deprecatedcollect_deprecations
Remove deprecated
ActiveSupport::Deprecationdelegation to instance.Remove deprecated
SafeBuffer#clone_empty.Remove deprecated
#to_default_sfromArray,Date,DateTimeandTime.Remove deprecated
:pool_sizeand:pool_timeoutoptions for the cache storage.Remove deprecated support for
config.active_support.cache_format_version = 6.1.Remove deprecated constants
ActiveSupport::LogSubscriber::CLEARandActiveSupport::LogSubscriber::BOLD.Remove deprecated support to bolding log text with positional boolean in
ActiveSupport::LogSubscriber#color.Remove deprecated
config.active_support.disable_to_s_conversion.Remove deprecated
config.active_support.remove_deprecated_time_with_zone_name.Remove deprecated
config.active_support.use_rfc4122_namespaced_uuids.Remove deprecated support to passing
Dalli::Clientinstances toMemCacheStore.Remove deprecated support for the pre-Ruby 2.4 behavior of
to_timereturning aTimeobject with local timezone.
11.2. Deprecations
Deprecate
config.active_support.to_time_preserves_timezone.Deprecate
DateAndTime::Compatibility.preserve_timezone.
11.3. Notable changes
12. Active Job
Please refer to the Changelog for detailed changes.
12.1. Removals
Remove deprecated primitive serializer for
BigDecimalarguments.Remove deprecated support to set numeric values to
scheduled_atattribute.Remove deprecated
:exponentially_longervalue for the:waitinretry_on.
12.2. Deprecations
- Deprecate
Rails.application.config.active_job.use_big_decimal_serialize.
12.3. Notable changes
13. Action Text
Please refer to the Changelog for detailed changes.
13.1. Removals
13.2. Deprecations
13.3. Notable changes
14. Action Mailbox
Please refer to the Changelog for detailed changes.
14.1. Removals
14.2. Deprecations
14.3. Notable changes
15. Ruby on Rails Guides
Please refer to the Changelog for detailed changes.
15.1. Notable changes
16. Credits
See the full list of contributors to Rails for the many people who spent many hours making Rails, the stable and robust framework it is. Kudos to all of them.