大家好!
我是来自充满雨水的浦那的 Vipul,一边喝着 ☕ 一边给各位带来本周 Rails 变更的回顾。
如果你也想参与 Rails,请转到 问题页面帮助我们!
以前,如果没有通过 image_tag
提供 alt 文本,Rails 会根据文件名自动为图片生成 alt 文本。如果没有妥善处理,这种生成可能会分散屏幕阅读器用户的注意力,给他们带来不便。
经过这次变更,如果作者没有为图片留下 alt 文本,Rails 将不再自动填充,让屏幕阅读器提示作者修复此问题。
以前,Rails 会最终设置两次数据库连接时区,一次是通过 configure_connection
中的配置传递时区,第二次是设置默认时区。
如果已通过配置变量传递时区,本次变更将删除两次设置数据库时区的操作。
此 PR 向 MySQL 适配器添加了 TransactionTimeout 错误,此错误处理以下错误:
锁等待超时;请尝试重启事务(MySQL 错误 1205)
进行此次变更之前,非英语名称文件的 URL 会在 Active Storage 中造成问题。
此变更修复了 Content-Disposition
文件名的 `RFC 2231` 编码,以修复此问题。
对于带有 ``:expires` 的签名/加密 cookie,如:
cookies.signed[:user_name] = { value: "bob", expires: 2.hours }
现在,Rails 在编写的 Cookie 有效载荷中嵌入到期时间。通过这种方式,Rails 不依赖于客户端来接受到期时间,但可以在服务器端独立验证到期时间。
restart
和 dev:cache
任务生效以前,当使用自定义 pid 文件路径启动时,rails dev:cache
无法重启 Rails 服务器。
通过此次变更,即使遇到自定义 pid 文件,重启也不会再失败,并在 dev:cache
更改时成功重启 Rails 服务器。
display_image
中的 can't modify frozen String
错误这一变更对系统测试中 display_image
中的一个错误进行了快速修复,该错误用于屏幕快照,它在尝试修改冻结字符串时会引发一个错误。
eager_loading
不适用于:inverse_of
关联选项以前对:inverse_of
关联进行eager_load
调用时,eager_load
会失败。这是自 Rails 5.1 版以来发生的回归。
这一变更修复了该回归。
本周就这样了!如果你有兴趣,可以随时查看完整提交列表。咱们下周见!