Hi, it’s Vipul!. Let’s explore this week’s changes in the Rails codebase.
Rails 8.1.0.rc1 was released! Rails 8.1.0 is right around the corner! Try out the latest release candidate and report any bugs you find!
The newest add-on tutorial is now live on the Rails tutorials page!
In this guide, you learn how to add Wishlist functionality to the e-commerce demo app you already started.
Find this tutorial and more on the Rails tutorials page: https://rubyonrails.org/docs/tutorials
Add support for bound SQL literals in CTEs
When creating a SQL literal with bind value parameters, Arel.sql
returns an
instance of Arel::Nodes::BoundSqlLiteral
, which is not currently supported by
#build_with_expression_from_value
.
This PR updates the method to accept both Arel::Nodes::SqlLiteral
and Arel::Nodes::BoundSqlLiteral
.
Add advisory DB update by default in bin/bundler-audit
This PR updates the bin/bundler-audit
script to include the --update
option.
Show help hint when starting bin/rails console
The help
command in the Rails console shows which Rails specific commands are available and what they do.
Similar to bin/rails dbconsole
(where database clients show a help hint), show a hint on how to use help when opening bin/rails console
.
$ bin/rails console
Loading development environment (Rails 8.1.0.beta1)
Type 'help' for help.
example(dev):001>
Add prefix option to has_secure_token for improved token identification
Adds an optional :prefix
parameter to has_secure_token
that prepends a
string to generated tokens, making token types immediately identifiable in logs,
debugging sessions, and error messages
# Before:
user.auth_token # => "pX27zsMN2ViQKta1bGfLmVJE"
user.reset_token # => "tU9bLuZseefXQ4yQxQo8wjtB"
# After:
has_secure_token :auth_token, prefix: "auth_"
has_secure_token :reset_token, prefix: true
user.auth_token # => "auth_pX27zsMN2ViQKta1bGfLmVJE"
user.reset_token # => "reset_token_tU9bLuZseefXQ4yQxQo8wjtB"
Add environment config file existence check
This Pull Request adds a behaviour to Rails::Application
which will raise an error if unable to load any environment file.
Add dark mode to http error pages
We now have a dark mode on error pages!
Add error type support to ActiveModel::Errors#messages_for and ActiveModel::Errors#full_messages_for methods
Added type
argument support to messages_for
and full_messages_for
methods of ActiveModel::Errors
Add support for expires_in: when using render with collection:
Pass expires_in
to write_multi
so the cache key is written with the expiration.
Suggest bin/rails action_text:install from error page
Mirror Active Storage’s encouragement to execute the active_storage:install
task from Action Dispatch error pages by adding similar instructions for the
rails action_text:install
task when the error is related to missing Action
Text tables.
You can view the whole list of changes here.
We had 34 contributors to the Rails codebase this past week!
Until next time!
Subscribe to get these updates mailed to you.