Rails

Rails 8 adds Brakeman by default to new applications

All new applications using Rails 8 will have Brakeman gem by default for static analysis for security vulnerabilities.

Rails 7.1 Allows ActiveRecord::Relation#explain To Accept Options

Adding analyze and verbose as ActiveRecord::Relation#explain options give us deeper insight into query performance.

Rails 7.1 Introduces ActiveRecord regroup Method

With regroup and regroup! methods we can override the group_values

Rails 7.1 allows resetting singular associations

Query database again to retrieve the associated record by resetting the cache on singular associations.

Rails introduces ErrorReporter#unexpected for reporting precondition violations

The new method will report in production but raise in other environments, making it easier to debug.

Rails 7.1 Introduces Option To Disable All Methods That ActiveRecord.enum Generates

Disable auto generated methods of ActiveRecord.enum with instance_methods by passing false to it.

Upsert no longer ignores on_duplicate if unique_by is specified

Upsert would previously not execute the on_duplicate clause if the unique_by constraint found a match. This has been fixed.

ActiveStorage now pre-processes PDFs and videos

Rails now pre-processes previewable files such as PDFs and videos. Previously it only pre-processed images.

Rails 7.1 Adds path_params Option For url_for Helper Method

path_params allows specified params to be used exclusively for named segments under scoped routing without unnecessarily appending parameters to every URL.

Rails 7.1 Introduced Validate Option For Enums

Rails 7.1 added a validate option for enums, which will allow developers to validate the passed enum values before saving it.