Rails 7 adds attributes_for_database to return attributes as they would be in the database
Before this update, serializing an ActiveRecord object led to funny outcomes. Let's dive in!Rails 7 allows anything that responds to `#to_str` into redirect_to
Rails 7 adds support for redirecting using any arguments that respond_to `#to_str`.ECMAScript 2021 introduces replaceAll method and numeric separators
ECMAScript 2021 introduces the replaceAll() method to replace all occurrences of a substring in a string with another string and numeric separators to allow a separator character between digits.Rails 7 optimizes remove_columns to use a single SQL statement when supported
Rails 7 remove_columns will now trigger a single SQL statement to remove all columns if the database supports it, instead of querying multiple SQL statements for removing individual columns.Rails 7 now consistently renders button_to
Rails 7 introduced a config that helps button_to consistently render out to the button HTML tag.Starting with Rails 7, retry failed jobs indefinitely
Pass `:unlimited` symbol to `attempts` parameter of ActiveJob's `retry_on` method, which allows a developer to specify that a job should retry forever until it succeeds.ActiveStorage now raises a PreviewError when previews fail to generate
Before this update, a failed preview generation would result in a 0-byte file being created – leading to disastrous outcomes in the views.Rails 7 moves ActiveRecord::Base.logger to a class_attribute leading to a 7x speed improvement
Rails 7 utilized Ruby's cache for cvars to improve ActiveRecord::Base.logger performance 7x. Let's deep dive into this!ActiveRecord::Calculations will now use column-based type casting
Rails 7 now harmonizes results of ActiveRecord::Calculations.average by applying column-based typecasting. Now, floating-point number columns will be aggregated as Float.Ruby 3.1 adds try_convert method to Integer class for implicit conversions
try_convert for Integer will convert the object into an instance of the class via the implicit conversion method to_int and returns nil if no implicit conversion method is defined.