大家好,周六快乐!
Vipul 在这里为您带来本周 Rails 的最新动态。让我们开始吧!
本周,Rails 基金会发布了一系列更新的资源,帮助您学习新的 Rails 8 默认配置,包括全新的 入门教程、一个 9 部分的 YouTube 系列视频,以及更新的 Rails Guides。
在此处阅读公告。此外,安装指南也已分离,使其更容易找到,并包含使用版本管理器安装 Ruby 的基础知识——这可以说是新手的最大障碍之一。
Rails 版本 7.0.8.7、7.1.5.1、7.2.2.1 和 8.0.0.1 已发布!
这些是安全补丁,解决了在使用 `content_security_policy` 助手处理不受信任的用户输入时可能导致绕过浏览器内容安全策略的一个新问题。
Rails 版本 8.0.1 已发布!
还有一个新的次要版本——8.0.1,也已发布!前往 CHANGELOG,查看此版本中的所有更改。
Doximity 案例研究——快速、灵活且可扩展
我们还有一个新的官方案例研究!了解 Rails 如何为 Doximity 的医疗保健平台提供支持。以下是研究中的一些亮点:
接受 `ActiveJob::ConfiguredJob#perform_later` 的块
此拉取请求增加了对接受 `ActiveJob::ConfiguredJob#perform_later` 的块的支持。这之前与常规的 `ActiveJob::Base#perform_later` 不一致。
修复外键添加和移除的 `if_exists` / `if_not_exists`
此 PR 解决了外键添加/移除和 `if_exists/if_not_exists` 的一些改进。
更改列的可空性不会改变默认函数
此拉取请求修复了更改列的可空性时 `MySQL` 默认函数被删除的问题。
将 `ActiveRecord::Normalization` 迁移到 Active Model
`ActiveRecord::Normalization` 已迁移到 Active Model。此更改将 `ActiveRecord::Normalization` 向后移植到 `ActiveModel::Attributes::Normalization`。通过此更改,我们现在可以在 PORO 中使用此功能,并通过 `ActiveModel::Attributes::Normalization` 使用——
class User
include ActiveModel::Attributes
include ActiveModel::Attributes::Normalization
attribute :email, :string
normalizes :email, with: -> email { email.strip.downcase }
end
user = User.new
user.email = " CRUISE-CONTROL@EXAMPLE.COM\n"
user.email # => "cruise-control@example.com"
将 `ActionText::RichText#embeds` 赋值更改为 `before_validation`
在此更改之前,`embeds` 关联的赋值发生在验证回调 **之后**,因此无法纳入富文本相关的文件验证。
SQLite3:将默认函数用作默认插入值
先前,如果列定义了一个函数作为其默认值,在插入 fixture 时该函数永远不会被调用。现在,此添加使其按预期工作。
您可以在此处查看全部更改列表。 上周,我们有41 位贡献者为 Rails 代码库做出了贡献!
下次再见!
订阅以通过邮件获取这些更新。