2024 年 5 月 17 日,星期五

Rails 8 开发启动、发布了 7.0.8.2 和 7.1.3.3,默认使用 Kamal,还有更多!

发布者:vipulnsward

嗨,大家好,周末愉快!

Vipul 在此为您奉上本周的 Rails 最新资讯。让我们开始吧。

Rails 8.0 开发现在开始 🎉
本周标志着 Rails 8.0 开发的正式开始。敬请期待更多关于 Rails 8.0 功能和更新的资讯 🎉。

Rails 8 只针对新的应用程序使用 Ruby 3.3+

在 Rails 8 中默认添加 Kamal
此 PR 默认添加了 Kamal 进行部署,其中包括生成某个 Rails 特定的 config/deploy.yml。可以使用 --skip-kamal 跳过它。在它的 官方网站上查看更多有关 Kamal 的内容。

为 create_schema 添加对 :if_not_exists 和 :force 选项的支持
此更改为 create_schema 添加了缺失的 :if_not_exists:force 选项支持。

已发布 7.0.8.2 和 7.1.3.3
已发布两个新的 Rails 版本,将 Trix 升级到 2.1.1 来修复 CVE-2024-34341

在此处查看更多详细信息 - Trix 编辑器中的 XSS 漏洞

使用别名为更新属性来修复 ActiveRecord::Relation#touch_all
在此更改之前,如果我们有类似内容的话

create_table :users do |t|
  t.timestamp :legacy_updated_at
end

class User < ActiveRecord::Base
  alias_attribute :updated_at, :legacy_updated_at
end

User.touch_all(:updated_at)

那么 ActiveRecord 将无法正确解析 updated_at 为其别名,并导致重复更新同一列的查询。此 PR 修复了此行为,以正确解析别名。

在 ActiveSupport::XmlMini 中支持持续时间
在此更改之前,ActiveSupport::XmlMini 无法处理 XML 中的持续时间类型,这是其中一种原始数据类型。此 PR 使用 ActiveSupport::Duration 添加了对持续时间类型的支持。

支持批次中的 touch_all
此更改添加了对批次中的 touch_all 的支持。这对于 update_all/delete_all/etc) 也是类似支持的

  Post.in_batches.touch_all

您可以在 此处 查看完整更改列表。
上周,Rails 代码库有 27 位贡献者

直到下次!

订阅接收邮件更新。