This post is a collection of references to some changes that were done during the development of Rails 5.2.

Read What is new in Rails 6.0

Start Rails 5.2 development

Prevent double firing the before save callback of new object when the parent association saved in the callback

Fix inconsistency with changed attributes when overriding AR attribute reader

Fix ActiveModel::Errors #keys, #values

Fix migration tasks

Fix destroy with locking_column value null

Fix ActiveRecord::Persistence#touch with locking

Set consistent typecast ENV[“VERBOSE”]

Improve the upgrade path of Strong Parameters

Define path with __dir__

Use respond_to test helpers

Keep INNER JOIN when merging relations

Enforce frozen string in Rubocop

Added time helper method freeze_time which is an alias for travel_to Time.now

Default protect from forgery

Add Active Storage to Rails

ActiveStorage Guide

Provide initialization of Active Storage

Don’t include Active Storage migrations in new apps

ActiveSupport::CurrentAttributes provides a thread-isolated attributes singleton

Set Ruby version in Gemfile and .ruby-version by default

Remove :sorted test order for isolated tests

Add --skip-action-cable option to the plugin generator

Add --skip-yarn option to the plugin generator

Add binary fixture helper method

Simplify implementation of MySQLDatabaseTasks

Fix bin/rails db:setup and bin/rails db:test:prepare create wrong ar_internal_metadata’s data for a test database

Mirror the API of Ruby stdlib for #prev_day, #next_day, #prev_month, #next_month, #prev_year, #next_year

Deprecate Module#reachable? method

Add Key Rotation to MessageEncryptor and MessageVerifier and simplify the Cookies middleware

Fix bin/rails db:migrate with specified VERSION

Implement H2 Early Hints for Rails

Add assert_enqueued_email_with to ActionMailer::TestHelper

Add headless chrome driver to System Tests

Add allow_other_host option to redirect_back method

Execute ConfirmationValidator validation when _confirmation’s value is false

Allow Range#include? on TWZ ranges

Require raw SQL fragments to be explicitly marked when used in relation query methods

Whitelist NULLS FIRST and NULLS LAST in order clauses too

Built-in Redis cache store

Add #only_up to database migrations for code that is only relevant when migrating up, e.g. populating a new column

Add parameterized invocation of mailers as a way to share before filters and defaults between actions. See ActionMailer::Parameterized for a full example of the benefit

Register most popular audio/video/font mime types supported by modern browsers

Add preload_link_tag helper

Add DSL for configuring Content-Security-Policy header

Add the ability to disable the global CSP in a controller

Always yield a CSP policy instance from content_security_policy

Added support for managing custom encrypted files from cli

Add headless firefox support to System Tests

Fix conflicts counter_cache with touch: true by optimistic locking

Fix that association’s after_touch is not called with counter cache

Fix touch option to behave consistently with Persistence#touch method

Fix nested has many :through associations on unpersisted parent instances

Support hash as first argument in assert_difference. This allows to specify multiple numeric differences in the same assertion

Consistency between first() and last() with limit

Refactor migration to move migrations paths to connection

Add locale selector to email preview

Allow for custom handling of exceptions that are discarded

Support for PostgreSQL foreign tables

Add Rack::TempfileReaper to the default middleware stack

Consistent behavior for session and cookies with to_h and to_hash method

Do not lose all multiple :includes with options in serialization.

Fix that after commit callbacks on update does not triggered when optimistic locking is enabled

Fix dependent: :destroy issue for has_one/belongs_to relationship where the parent class was getting deleted when the child was not

Add ability to create/validate invalid foreign keys in Postgres

Time column improvements

Update “Ruby on Rails 5.2 Release Notes” Guide

Preparing for 5.2.0 release