Rails
Rails serializes store data as a regular hash instead of using HWIA
Serializing store objects with ActiveSupport::HashWithIndifferentAccess is both a wasteful and an insecure option. Instead Rails now encodes store as a regular hash and casts it back to HWIA before accessing.Rails 7.1 adds include_seconds option to datetime_field.
Rails now allows to omit seconds part in the input field by adding the include_seconds option to datetime_fieldPending migrations now show path instead of filename
Rails warns users of pending migrations now by showing the path of the migration file, instead of just the name. This is useful in multi-db applications.Rails 7 fixes timezone awareness for tsrange and tstzrange columns
Earlier the tsrange/tstzrange column would throw a TypeError if a timezone was set in the application config. This column now stores time with the correct timezone.Rails 7.1 adds the --parent option to the job generator
Similar to the working of the model generator, the job generator now accepts the --parent option. This allows one to generate a job that inherits from the specified parent class.Rails adds :strict option to the default SQLite database.yml file
SQLite can be configured to be strict to circumvent some of its quirks. Rails can now specify this in the default database.yml file.Rails now validates options used in migration functions
Previously erroneous options were silently ignored in migration functions such as "create_table" or "add_column", now they raise an error.Rails now allows specifying the HTTP status code in assert_redirected_to
The assertion statement previous was only able to assert that the request was redirected, but not the status code.Rails adds source attribute to its ErrorReporting API
Subscribers can now filter error reports based on source, making it easier to ignore internal errors or focus on specific errors.Rails raises exception when config.active_storage.service is not explicitly set
Developers are no longer presented vague errors when config.active_storage.service is not set. Instead a clear exception is raised.