嗨!Vipul 在此带来 2024 年 Rails 这周的第二版!
第二周继续着繁忙的活动,增加了 140 多个更改。
让我们深入了解其中一些更改!
更新默认 Puma 配置
在过去几天有关 设置 Puma 线程数新默认值的此问题中进行了广泛讨论,阅读它可以从社区中各个成员那里获得有关延迟与吞吐量权衡以及 Puma 配置中线程数的详细信息。基于此讨论,Puma 配置中的默认线程数现已从 5 更新为 3。
向 Object#with 块生成实例
引入块自变量意味着 Object#with
现在可以实现类似如下内容的任务
client.with(timeout: 5_000) do |c|
c.get("/commits")
end
为 last、pluck 和 count 等方法添加解释支持
由 explain
返回的对象现在会响应 pluck
、first
、last
、average
、count
、maximum
、minimum
和 sum
。这些新方法对相应查询运行 EXPLAIN
,例如
User.all.explain.count
# EXPLAIN SELECT COUNT(*) FROM `users`
User.all.explain.maximum(:id)
# EXPLAIN SELECT MAX(`users`.`id`) FROM `users`
不在生产环境中生成服务器 pidfile
如果 Rails 应用程序使用 Docker 容器且应用程序崩溃时(例如由于 OOM)可能无法重新启动,因为 /rails/tmp/pids/server.pid
文件已存在。为了避免这种情况,现在的新应用程序避免生成此 pid 文件。
在 #set_callback 中支持 :on
引入了 ActiveRecord::Transactions::ClassMethods#set_callback
,它的行为类似于 ActiveSupport::Callbacks::ClassMethods#set_callback
,并且支持 #after_commit
和 #after_rollback
回调中的 :on
选项。例如
class User
set_callback :commit, :after, :do_some_work, on: :update
end
为 ActiveSupport::CurrentAttributes.attribute 添加 default:
此更改扩展了 .attribute
类方法,使其接受其属性列表的 :default
选项
class Current < ActiveSupport::CurrentAttributes
attribute :counter, default: 0
end
在使用 bun 生成应用程序时,将 oven-sh/setup-bun 添加到 GitHub CI
这是 为新应用程序默认添加 GitHub CI 工作流 的后续更改。在使用 bun 生成应用时,它将 oven-sh/setup-bun
添加到 GitHub CI,以进行合理的 CI 环境设置。
防止在开发中进行不必要的应用程序重新加载
此 PR 通过确保应用程序根据 Rails.autoloaders.main.dirs
正确重新加载来修复此问题,从而防止不必要的重新加载,例如:编辑 app/README.md
时将触发重新加载。
您可以在 此处 查看完整更改列表。 过去一周,有 28 位贡献者 为 Rails 代码库做出贡献!
下次再见!
订阅 以接收通过邮件发送的这些更新。