Rails 6.0.1 稳定版已发布,这也是 6.0 系列的首个维护版本。其中 Rails 6.0 值得关注的更新包括:用于处理电子邮件的 Action Mailbox、提供富本文编辑功能的 Action Text对多数据库的支持对并行测试的支持、默认使用 Webpacker 作为 JavaScript 打包器,以及默认使用 Zeitwerk 作为 Ruby 代码加载器。

根据项目在 github 上更新的版本说明,Rails 6.0.1 的更新内容主要是对 6.0 新增的功能进行改进,以及修复部分问题。

Active Support

  • ActiveSupport::SafeBuffer 支持 EnumeraTor 方法
  • 当服务器返回“已达到最大客户端数”错误时,Redis 缓存存储会失败
  • 修复了更改由内存缓存存储返回的值会意外更改缓存的值的问题
  • zeitwerk 模式支持下的默认转换器(inflector)支持重载:
    # config/initializers/zeitwerk.rb
    Rails.autoloaders.each do |autoloader|
      autoloader.inflector.inflect(
        "html_parser" => "HTMLParser",
        "SSL_error"   => "SSLError"
      )
    end

    如此一来,我们便可以调整每个 basename 的转换方式,而无需触及全局的 Active Support 转换规则。这些转换器会 fallback 至 String#camelize,因此对于未重载的 basename,仍会考虑现有的转换规则。

    如果不想完全依靠 String#camelize,请查看自动加载指南中的zeitwerk模式

  • 改进 Range#===Range#include?和 Range#cover?
  • 不在 Solaris 上使用 Process#clock_gettime(CLOCK_PROCESS_cpuTIME_ID)

此外,该版本针对 Active Record、Action View、Action Pack、Active Storage 和 Railties 等功能也进行了改进或 bugfix

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。