概要:
- 新增 Action Mailbox 用于邮件处理
- 新增 Action Text 以 Trix editor 为基础的富文本编辑器
- 多数据库支持
- 并行测试
- 默认使用 Webpacker 作为 JS 打包工具
- Proper Action Cable testing、Action Cable JavaScript 用 ES6 重写
- Rails 6.0 beta1 要求 Ruby 2.5.0 以上版本支持
- 预告 beta2 将迎来新的 Zeitwerk autoloader 自动加载器
Rails 6 的第一个测试版在这里!这绝对是我们非常高兴分享的令人赞叹的新东西。有两个主要的新框架 - Action Mailbox 和 Action Text - 以及两个重要的默认扩展升级,多数据库支持和并行测试。
Action Mailbox 将新邮件路由到类似邮箱控制器在 Rails 处理,支持 Amazon SES,Mailgun,Mandrill,Postmark 和 SendGrid。您还可以通过内置的 Exim,Postfix 和 Qmail 插件直接处理入邮件。Action Mailbox 的基础工作由 George Claghorn 和你完成。
Action Text 为 Rails 带来了富文本以及其编辑能力,它包括 Trix 编辑器处理从格式化到链接到列表到嵌入图像和图库的链接等所有内容,Trix 编辑器生成的富文本内容保存在自己的 RichText 模型中,该模型与应用中的任何现有的 Active Record 模型相关联。使用 Active Storage 自动存储任何嵌入图像(或附件),并与包含的 RichText 模型相关联。Action Text 的基础工作由 Sam Stephenson,Javan Makhmali 和你完成。
新的多数据库支持轻松让单应用程序同时连接多个数据库!您可以执行此操作,因为您希望将某些记录分段到自己的数据库中以进行扩展或隔离,或者因为您正在使用副本数据库进行读/写拆分以提高性能。无论哪种方式,都有一个新的简单的 API,不用了解 Active Record 内部就可实现这一目标。Eileen Uchitelle 和 Aaron Patterson 完成其基础工作。
通过并行测试支持,您最终可以利用计算机中的所有核心来更快地运行大型测试套件。每个测试任务都有自己的数据库,并在自己的线程中运行,所以你不会将一个 CPU 跑到100%,而另外 9 个处于闲置状态(你们都有一个10核的iMac Pro,对吧 ?)。欢呼!并行测试支持的基础工作由 Eileen Uchitelle 和 Aaron Patterson 完成。
Webpacker 现在是 Rails 默认 JavaScript 打包工具,在新的 app/javascript 目录 。不过,我们仍在使用 Sprockets asset pipeline 处理 CSS 和静态资源。这两者非常完美地集成在一起,提供了高级 JavaScript 功能的最佳权衡,以及其他资源合适的处理方式。
这些只是部分品牌的增加,但 Rails 6.0 也包含了一些细微的变化,包括修复和升级。我只向提这一些:Proper Action Cable testing、Action Cable JavaScript 用 ES6 重写,DNS Rebinding 攻击的保护,和 per-environment credentials。此外,Rails 6 现在需要 Ruby 2.5.0+ 支持。您可以查看各个框架 CHANGELOG 文件了解详细信息。
最后,你应该注意 Xavier Noria 用于 Ruby 的新 Zeitwerk 代码加载器。它没有集成到 beta1,但从 beta2 开始它将成为 Rails 的新自动加载器。准备好在代码中告别任何挥之不去的 require
或 require_dependency
调用!
我们仍然按照我们发布的最终 Rails 6.0 版本的时间表大致按计划进行,因此请参考该计划进行迁移规划,但请通过在 beta1 上测试您的应用程序来帮助我们!我还鼓励任何具有中等 Rails 经验的人使用 beta1 而不是 Rails 5.2.x 系列启动任何新应用程序。Basecamp 已经在生产中运行 Rails 6.0.0.beta1,Shopify 和 GitHub 以及其他人肯定会在此后跟进。这应该是比较稳定的版本。
这个版本和所有走向 Rails 6.0 最终的所有版本都由发布经理 RafaelFrança 在 Kasper Timm Hansen 的支持下进行。
再次感谢所有致力于使 Rails 更好的人!令人难以置信的是,这些年来我们仍然能够保持这种强劲的改善速度。Rails 从未像现在这样适合帮助最广泛的 Web 开发人员以他们喜欢的方式构建优秀的应用程序。让快乐雄起!
关注 <Ruby 技术栈> 微信公众号,实时获取 Ruby 动态!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。