大家好,周五快乐!特别是13号 🎃
我是Vipul,带来本周Rails的最新更新,内容来自本周精彩的 EuRuKo 大会!我们开始吧。
新的Guides Pull Request待审阅
本周有两个新的Guides Pull Request供社区审阅。如果您精通 Action Mailer 或 Error Reporting,请在此处审阅并提交您的反馈。
添加Solid Cable
此更改开始在生产环境中使用 Solid Cable 作为默认的 Action Cable 适配器,在 config/database.yml 中配置为一个单独的队列数据库。它将消息保存在表中并持续轮询更新。
这使得在不用于其他目的的情况下,可以放弃对Redis的普遍依赖。尽管进行了轮询,但在大多数情况下,Solid Cable的性能与Redis相当。并且在任何情况下,当Redis不再是Action Cable功能的必需依赖项时,部署Rails都会变得更加容易。
弃用Benchmark.ms并为gemspec添加benchmark
Ruby计划将 benchmark 打包成一个内置gem。此更改为将来弃用Rails核心扩展,转而使用内置gem做好了准备。
弃用 unsigned_float 和 unsigned_decimal 简写列方法
此更改弃用了 unsigned_float 和 unsigned_decimal 简写列方法。
从MySQL 8.0.17开始,UNSIGNED 属性已弃用于 FLOAT、DOUBLE 和 DECIMAL 类型的列。对于这些列,可以考虑使用简单的 CHECK 约束代替。更多详情请 此处 查看。
允许 BroadcastLogger 传递 kwargs
某些 Logger 实现可能希望扩展日志接口,通过关键字参数提供可选信息。此更改增强了 BroadcastLogger 以允许此功能。
修复 travel_to 在 with_usec 为 false 且给定参数为 String 或 DateTime 时将 usec 设置为 0
在此更改之前,travel_to 会根据参数(String 或 DateTime)的不同,不将 usec 设置为 0。此PR修复了此行为,使其保持一致。
修复 .left_outer_joins 在多个关联具有相同子项时
此更改修复了一个问题:当使用多个具有相同子关联但父项不同的关联时,.left_outer_joins 无法连接所有父项。
以前,当使用具有相同子关联的 .left_outer_joins 时,只会连接其中一个父项。在此修复后,它现在可以正确连接两个父项。
alias_attribute: 处理用户定义的源方法
在此更改之前,当使用 alias_attribute 并尝试别名用户定义的源方法时会报错,例如:
class Person
include ActiveModel::AttributeMethods
define_attribute_methods :name
attr_accessor :name
alias_attribute :full_name, :name
end
person = Person.new
person.name = "Joe Doe"
person.full_name #=> Raises error
此更改修复了 alias_attribute 的行为,使其能够正确处理用户定义的源方法。
启用 DependencyTracker 来评估带有尾部插值的渲染
<%= render "maintenance_tasks/runs/info/#{run.status}" %>
以前,DependencyTracker 会忽略此渲染,但在此更改之后,它现在会将 maintenance_tasks/runs/info 文件夹中的所有部分标记为依赖项。
您可以 在此处 查看所有更改的完整列表。 上周我们有 28位贡献者 为 Rails 代码库做出了贡献!
下次再见!
订阅以通过邮件获取这些更新。