🍭 不给糖就捣蛋,我 zzak 在休息一周后带着许多好东西来了!🍬
这本新指南包含了您在 Rails 6.x 和 7.0 应用中切换自动加载器所需了解的一切!
添加 ActiveRecord::Base.prohibit_shard_swapping
这个新方法可以禁止在给定代码块内切换分片。如果您使用分片来为每个请求提供数据库隔离,这将非常有用。
添加在配置中设置 schema/structure dump 文件路径的支持
此 PR 添加了指定 schema dump 文件路径的能力。对于那些使用水平分片的人来说,以前为每个分片都会创建一个 schema 文件,这使得在分片之间共享相同的迁移变得更加困难。
Rails 7.0 要求 selenium-webdriver >= 4.0.0
之前,由于与 Ruby 3.0 不兼容,Rails 生成的 Gemfile 中的 selenium-webdriver 是 alpha 版本。
将 Concurrent.monotonic_time 替换为 Process.clock_gettime
由于所有现代 Ruby 都支持此接口,因此可以进行一项小优化,以减少 Active Record 连接适配器中的方法调用。
当在设置了 ENV[“CI”] 的 CI 环境中运行您的 Rails 应用测试套件时,建议开启预加载以帮助识别仅在生产环境中出现的错误。这将是新生成应用的默认设置。
您现在可以在新生成应用中默认有效地使用符合 RFC 4122 标准的字符串,或者通过启用新的 config.active_support.use_rfc4122_namespaced_uuids 设置来实现。
随着 Ruby 3.1 中添加 Class#descendants,我们可以避免迭代 ObjectSpace 中的每个对象来实现相同的功能。此外,请查看 #43548 以了解 DescendantsTracker 的一些额外重构。
Rails.application.executor hook 现在在每个测试周围调用,这有助于防止状态从一个测试泄露到另一个测试。
向 date_select 添加 :day_format 选项
与 :year_format 类似,date_select 的这个新选项允许您传递一个 lambda 来设置显示日期选择选项的格式。