Rails
Rails uses self-join for UPDATE with outer joins on PostgreSQL and SQLite
Rails no more generates the subqueries as it uses self-join for `UPDATE` with outer joins on PostgreSQL and SQLite.Rails 8 adds built in authentication generator
Rails 8's built-in authentication generator offers a lightweight, secure, and customizable alternative to Devise or Auth0, providing full control over sessions and tokens.Rails stops generating bundler binstub(bin/bundle)
In new Rails applications, the bin/bundle is no longer included by default, as managing the correct Bundler version is now handled directly by RubyGems.Rails 8 Removes Channels From Default App Structure.
With Rails 8, channels folder dropped from default app/ structure as Hotwire is default in Rails.Rails Introduces ActiveModel::Attributes::Normalization
Normalization allows us to define custom normalization rules for attributes in our model. This feature is particularly helpful for ensuring that specific attributes are consistently formatted or transformed before they are saved to the database.Bulk Migrations by Passing validate(_check)_constraint through change_table
Rails 7.1 now delegates validate(_check)_constraint through change_table for bulk migrations by letting us define and validate check constraints within a single change_table block.Deep Dive Into Rails ActionController Strong Parameters
Explore Rails Strong Parameters, their role in preventing mass assignment vulnerabilities, and how they enhance security and maintainability.Rails 8 Adds A New Script Folder By Default And Scripts Generator.
The new script folder to hold one-off or general purpose scripts, such as data migration scripts, cleanup scripts and a scripts generator.Rails 8 Now Uses ISO 8601 Style Time For TimeWithZone#inspect.
Rails 8 ensures TimeWithZone#inspect aligns with Ruby standards, ensuring time formatting consistency across the board by supporting ISO 8601 Style.Rails 8 Adds if_not_exists Option On The add_enum_value.
Rails 8 introduces if_not_exists option on add_enum_value, we can now safely add a new enum value, preventing errors if the value already exists.