惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Cloudflare Blog
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
博客园 - 司徒正美
V
Visual Studio Blog
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏
博客园_首页
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
D
Docker
Vercel News
Vercel News
Recent Announcements
Recent Announcements
Last Week in AI
Last Week in AI
爱范儿
爱范儿
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏

Ruby on Rails: Compress the complexity of modern web apps

Safer to_i coercion, custom to_fs formats, and more! This Week in Rails: May 16, 2026 This Week in Rails: May 8, 2026 This Week in Rails: May 1, 2026 Active Record gets better every week Great big Rails World 2026 update: CFP, Corporate Support tickets, workshops Query command for database queries and more Explicit query: and body: kwargs for integration tests and more! Speedup ActiveRecord::LogSubscriber#sql_color and more! This Week in Rails: March 27, 2026 Rails Versions 8.0.5 and 8.1.3 have been released! Rails Versions 7.2.3.1, 8.0.4.1, and 8.1.2.1 have been released! This Week in Rails: March 20, 2026 Validate URI scheme in Action Text and more This Week in Rails: March 6, 2026 Planning Center is the newest Rails Foundation Contributing member Action Text gets Markdown conversion, editor links in devcontainers, and more! BARRA seeks Rails developer Joe Agliozzo is looking for a Rails developer The rise of lighttpd as the alternative web server When longer is better and more is more Snowdevil: First e-tailer on Rails Natural selection for frameworks in Ruby vs Java Address book tutorial in Portuguese Becoming a better programmer with Rails 10 Things Every Java Programmer Should Know About Ruby Really Getting Started in Rails Off the Treadmill, Onto the Rails Rails 0.9.5: A world of fixes and tweaks Rich clients with Rails and XUL
Rails 8 demo, Rails World re-edited videos, NotificationA...
David Heinemeier Hansson · 2024-11-15 · via Ruby on Rails: Compress the complexity of modern web apps

Friday, November 15, 2024
Posted by vipulnsward

Hey everyone, Happy Friday!

Vipul here with the latest updates for This Week in Rails. Let’s dive in!

Rails 8: The Demo
In case you missed it, Rails 8 was released last week. A new demo from DHH is now up Rails 8: The Demo showcasing its usage. The video covers getting started with Rails 8 by building a basic blog, adding a WYSIWYG editor, putting it behind authentication, making it available as PWA, and deploying to production. In just 30 minutes!

Rails World re-edited videos!
All Rails World videos have been re-edited and are up on YouTube! They also now have Japanese, Brazilian Portuguese, and Spanish subtitles thanks to Happy Scribe (a transcription platform built on Rails).

Add ActiveSupport::Testing::NotificationAssertions test helper module
With this addition, we can now use various test helper methods for notification assertions:

assert_notification("post.submitted", title: "Cool Post") do
  post.submit(title: "Cool Post") # => emits matching notification
end

assert_notifications_count("post.submitted", 1) do
  post.submit(title: "Cool Post") 
end

assert_no_notifications("post.submitted") do
  post.destroy
end

notifications = capture_notifications("post.submitted") do 
  post.submit(title: "Cool Post") # => emits matching notification
end

Put back the quiet assets config in development
This config was removed during Sprockets removal. It is still supported by propshaft and without this config the terminal is cluttered with assets request log. This change bring back this config to silence these logs in development by default.

Allow path regex in SilenceRequest middleware
Rails::Rack::SilenceRequest middleware now supports regex in path filtering. For example

config.middleware.insert_before Rails::Rack::Logger,
                                Rails::Rack::SilenceRequest, path: /up$/

will silence logs from paths ending in “up”.

Allow hidden_field(_tag) to accept a custom autocomplete value
Previously a change introduced an enforced autocomplete=”off” to all hidden inputs generated by Rails to fix a Firefox bug.

But it’s also a legitimate use-case to specify an autocomplete with a value such as username and a value on a hidden input. This hints to the browser that (in this example) the username of a password reset form is what we’ve provided as the value and the password manager can store it as such.

This commit only sets autocomplete=”off” if another autocomplete value isn’t provided.

Parallel tests with :number_of_processors uses cgroups-aware usable processor count
Parallel tests with :number_of_processors uses cgroups-aware usable processor count, which is now correctly available for use via Concurrent.available_processor_count.

Ensure normalized attribute queries are consistent for nil and normalized nil
This change ensures that normalized attribute queries are consistent for nil and normalized nil. Ex:

class Aircraft < ApplicationRecord
  normalizes :name, with: -> name { name.presence&.titlecase }
end

# With this change, these queries are now consistent:
Aircraft.where(name: nil).to_sql  === Aircraft.where(name: "").to_sql

Fix regression when calling sum with a grouped calculation
This change fixes a regression with sum when performing a grouped calculation. For example User.group(:friendly).sum no longer worked, which is now fixed.

Don’t add bin/thrust if thruster is not in Gemfile
Running app:update after upgrading to Rails 8.0.0 results in bin/thrust being added even though thruster is not in the Gemfile.

This fixes it by checking if thruster is in the Gemfile to set the --skip-thruster option when running the generator in the app:update command.

You can view the whole list of changes here. We had 37 contributors to the Rails codebase this past week!

Until next time!

Subscribe to get these updates mailed to you.