嘿!以下是 zzak 为你们带来的另一期本周 Rails 资讯。
提示:Rails World CFP 接收征稿至 6 月 16 日。
无论你是经验丰富的资深人士还是 Rails 生态系统的新人,我们都鼓励你提交提案,展示富有前瞻性的想法并突破 Rails 中的可能性边界。
Rails 7.0.5 已发布
万一你错过了,已完成 Rails 7.0 系列的错误修复版本。
提高 MemoryStore 性能
此 PR 优化了 MemoryStore::DupCoder 内部 API,以避免在写入和读取复杂对象时进行不必要的工作。
重构错误高亮检测
在此提交之前,某些对 render 的调用将错误高亮硬编码为“不可用”。这导致某些错误页面显示“你应安装错误高亮”消息,而即使已安装正确版本的错误高亮也一样。
对命名空间使用短格式固定宽度 RDoc 形式
一些工作致力于用 RDoc 支持的较短的“+…+”语法替换“Some::Namespace::Thing”这些出现。
这只是提醒编写文档的人们,此语法可用于所有固定宽度代码,前提是不包含括号、空格或原始“字符串”。对于直接查看代码(和编写代码)的读者来说,这在视觉上更加友好。
在引擎中自动将 “test/fixtures” 添加到 “fixture_paths”
此 PR 利用最近添加的 TestFixtures#fixture_paths 特性,以便应用程序使用固定装置的任何引擎也将自动加载。
修复二进制序列化列的 “change_in_place?”
当给存储在 blob 列中的序列化属性提供 unicode 字符时,发生了一个错误,这将始终显示该属性上发生了更改。
使用 “app:template” 命令运行 “after_bundle” 块
应用程序模板可能包含在运行 bundle install
后在模板执行后应运行的 after_bundle 块。例如
gem "devise"
after_bundle do
generate "devise:install"
end
“ERB::Util.html_escape_once” 现在始终返回 “html_safe” 字符串
此方法以前在返回值上维护了字符串的 html_safe?
属性。但是,由于此字符串已转义,因此未将其标记为 html_safe
,从而导致实体被双重转义。在此更改之前,将被双重转义并呈现为
<p>this &amp; that &amp; the other</p>
在此更改之后,可以正确呈现为
<p>this & that & the other</p>
弃用 “SafeBuffer#clone_empty”
由于 2014 年(Rails 4.2.0)中删除了最后一个调用者,此内部方法已不再在 Rails 代码库中使用。
添加 “Arel::Nodes::Cte” 以在 WITH 表达式中使用
虽然 Arel 仍然是私人 API,但此 PR 仍然值得关注。此项添加给 with
方法提供了接受通用表表达式 (CTE) 的能力,该表达式可为生成的 SQL 语句添加 MATERIALIZED
或 NOT MATERIALIZED
提示。
Postgres 和 SQLite 都支持 CTE 语法的非标准扩展,以表示应具体化 CTE 子查询,即不将其折叠到主查询中而是单独评估。当查询计划程序在其他情况下做出错误决策时,这会很有用。
在 “assert_enqueued_email_with” 中通过 “:args” 使 params 弃用。
在使用 assert_enqueued_email_with
测试 Action Mailer 时,你应使用 :params
kwarg 将选项哈希传递给邮件程序。例如
assert_enqueued_email_with MyMailer, :my_method, params: { my_param: "value" }
修复带分隔符授权头的空值问题
此处的错误发生在包含空格(例如 ,,,
)的分隔 Authorization
头部值会产生 ArgumentError
,从而导致 500 错误响应。
添加 “ActiveRecord.disconnect_all!” 以关闭所有连接
这基本上是 ActiveRecord::Base.connection.disconnect!
的多数据库感知版本。它还避免在尚未连接到数据库的情况下进行连接。这有助于在使用 establish_connection
后重置状态。
改进应用生成器的 JS 和 CSS 选项
使用 --javascript
和 --css
标志生成新 Rails 应用时的 UX 在此处得到了改进。查看 PR 中的表格,该表格更详细地解释了行为更改。
模型生成器源路径应允许自定义
此 PR 复活了时间流逝中遗失的较旧 PR,通过添加测试和消除警告。很高兴看到能够解决自己问题的人,并从较早的 PR 中循环利用代码。无需重新发明一切!
更新所有三个 en.yml 文件中与布尔值相关的注释
我特意提出这一点,因为这是 @justinperkins 对 Rails 的第一个 PR!他们已经修复了为生成的区域设置文件编写的注释。恭喜!
使测试环境在响应中显示可抢救的异常
本周的最后一个 PR 更改 config.action_dispatch.show_exceptions
选项的行为,改为使用新的 “可抢救”选项,它仅会在测试环境中显示可抢救的异常(例如 ActiveRecord::RecordNotFound
)。
你可以在这里查看完整的更改列表 here。
**上周 Rails **代码库有 26 位贡献者参与了此代码库**!
我们下次见!
订阅,即可通过邮件收到这些更新。