Hi, it’s zzak. This week was full of changes, so let’s pull into the station and take a look.
Last Rails World GA tickets available
Heads up: there are now just 100 General Admission tickets available for Rails World 2026. Don’t miss your chance to join the Rails community in Austin this September for two days of talks, code, connection and music.
Rails Foundation documentation guides
The documentation project reworked the Multiple Databases guide, now ready for community review, and reorganized the Internationalization guide from beginner-friendly setup through advanced topics.
Allow query log tags to be configured per connection pool
Database configurations can now override query log tag settings per pool with query_log_tags, including the format, comment position, or false to opt a pool out.
production:
primary:
query_log_tags:
format: sqlcommenter
prepend_comment: false
archive:
query_log_tags: false
Make ActiveRecord::Base.with call Object#with when passed a block
ActiveRecord::Base.with still handles CTEs without a block, but block calls now delegate to Object#with so class attributes can be temporarily set inside the block.
Fix increment and decrement with query constraints
increment! and decrement! now include every query constraint column in the counter update, keeping constrained models scoped correctly.
Raise when change assertions receive static values
assert_difference, assert_changes, and their no-change variants now raise ArgumentError for static expressions like assert_no_changes(a.size), which would otherwise compare the same value before and after the block.
You can view the whole list of changes here.
We had 20 contributors to the Rails codebase this past week!
Until next time!
Subscribe to get these updates mailed to you.