大家好,周五快乐!
Vipul 在这里为您带来本周 Rails 的最新动态。让我们开始吧!
Rails 8:演示
如果您错过了,Rails 8 已于上周发布。DHH 发布了一个新的演示 Rails 8:演示,展示了它的用法。视频涵盖了通过构建一个基础博客、添加 WYSIWYG 编辑器、进行身份验证、将其制作成 PWA 并部署到生产环境来开始使用 Rails 8。整个过程仅需 30 分钟!
Rails World 重新编辑的视频!
所有 Rails World 视频都已重新编辑,并在 YouTube 上发布!由于 Happy Scribe(一个基于 Rails 构建的转录平台)的支持,它们现在还提供了日语、巴西葡萄牙语和西班牙语字幕。
添加 ActiveSupport::Testing::NotificationAssertions 测试助手模块
通过此添加,我们现在可以使用各种通知断言的测试助手方法
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
在开发环境中恢复 quiet assets 配置
此配置在 移除 Sprockets 时被删除。它仍然受 propshaft 支持,并且没有此配置,终端会被资产请求日志弄得杂乱无章。此更改将此配置带回,默认情况下可以在开发环境中静默这些日志。
允许 SilenceRequest 中间件使用路径正则表达式
Rails::Rack::SilenceRequest 中间件现在支持路径过滤中的正则表达式。例如
config.middleware.insert_before Rails::Rack::Logger,
Rails::Rack::SilenceRequest, path: /up$/
将静默以“up”结尾的路径的日志。
允许 hidden_field(_tag) 接受自定义 autocomplete 值
以前,一项更改引入了 对 Rails 生成的所有隐藏输入强制执行 autocomplete=”off”,以修复 Firefox 浏览器的一个 bug。
但指定一个带有“username”值等 autocomplete 值以及隐藏输入的值也是一个合法的用例。这会提示浏览器(在此示例中)密码重置表单的用户名是我们提供的值,密码管理器可以将其存储为这样。
此提交仅在未提供其他 autocomplete 值时才设置 autocomplete=”off”。
使用 :number_of_processors 的并行测试使用 cgroups 感知的可用处理器计数
使用 :number_of_processors 的并行测试使用 cgroups 感知的可用处理器计数,现在可以通过 Concurrent.available_processor_count 正确使用。
确保 nil 和规范化 nil 的规范化属性查询一致
此更改确保 nil 和规范化 nil 的规范化属性查询一致。例如
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
修复调用 sum 进行分组计算时的回归问题
此更改修复了 sum 在执行分组计算时出现的回归问题。例如 User.group(:friendly).sum 不再工作,现在已修复。
如果 Gemfile 中没有 thruster,则不添加 bin/thrust
升级到 Rails 8.0.0 后运行 app:update 会导致添加 bin/thrust,即使 Gemfile 中没有 thruster。
通过在运行 app:update 命令中的生成器时检查 thruster 是否在 Gemfile 中以设置 --skip-thruster 选项来解决此问题。
您可以在此处 查看所有更改的完整列表。 上周,Rails 代码库有 37 位贡献者!
下次再见!
订阅以通过邮件获取这些更新。