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