2025年9月5日,星期五

渲染 Markdown 成为现实,以及新的数据库连接池选项

作者:zzak

大家好,我是 zzak。让我们一起来看看本周 Rails 代码库的改动。

Rails 8.1 Beta 1 发布
Rails 8.1 的第一个 Beta 版本已发布,请阅读博文了解详情。

Rails World 2025 开幕主题演讲
通讯团队的一些成员正在阿姆斯特丹参加 Rails World,如果您也去参会,请和他们打个招呼。如果您(像我一样)未能前往,第一个主题演讲的视频已经上线!

引入新的数据库配置选项以管理连接池
此 PR 添加了 keepalivemax_agemin_connections,并将 pool 重命名为 max_connections 以保持一致。默认行为没有改变,但这些选项允许更精细地控制连接池行为。

将“LIMIT”验证从查询生成移至调用“limit()”时
虽然这是 Arel 私有 API 的一部分,但移除 sanitize_limit 可能值得在此提及。

添加 markdown Mime 类型和渲染器
将 .md/.markdown 添加为 Markdown 扩展名,并添加了一个默认的 markdown: 渲染器。

class Page
  def to_markdown
    body
  end
end

class PagesController < ActionController::Base
  def show
    @page = Page.find(params[:id])

    respond_to do |format|
      format.html
      format.md { render markdown: @page }
    end
  end
end

Action Controller 现在从速率限制中抛出“TooManyRequests”错误
超出速率限制的请求现在会抛出 ActionController::TooManyRequests 错误。以前这会调用 head :too_many_requests,但现在您可以在应用程序中使用 rescue_from 来处理这些错误。

弃用内置 Sidekiq 适配器
由于 Sidekiq 适配器已成功合并到上游,我们在 Rails 中不再需要维护它。如果您正在使用此适配器,请升级到 sidekiq 7.3.3 或更高版本,以使用 sidekiq gem 的适配器。

将 Active Job 参数序列化优化约 5 倍
这是一个非常有趣的改动,可能会影响使用自定义序列化器的用户,并且可能不是最终版本。

为 Active Support 的 Cache Store 添加命名空间设置器和获取器
在开发环境或初始化后,用户可能需要检查当前的缓存命名空间,也可能希望更改它。此 PR 添加了此功能。

为运行并行测试添加“parallel_worker_id”助手
这允许用户通过 ActiveSupport::TestCase.parallel_worker_id 来了解他们当前运行的 worker 编号。

为 Event Reporter 在本地环境中启用调试模式
Rails 现在将在开发和测试环境中默认发出调试事件,因此 Rails.event.debug 的调用应该是可见的。

您可以在 此处 查看所有更改的列表。 上周,有 27 位贡献者 为 Rails 代码库做出了贡献!

下次再见!

订阅以通过邮件获取这些更新。