Rails 6.0发布加入新的邮件处理框架Action Mailbox

Rails 5.0在2016年发布,久违三年,Ruby on Rails创建人David Hansonn终于发布了Rails 6.0稳定版,这个版本带来许多更新,包括让开发者能够更好地处理邮件的Action Mailbox,以及为文本内容增加丰富编辑效果的Action Text,还有对多重数据库连接的支持。而开发者要使用Rails 6.0,则需要先将Ruby更新到2.5.0以上版本才行。

David Hansonn提到,为了确保Rails 6发布版足够稳定,他们多花了一些时间才发布,不过,GitHub、Shopify和Basecamp企业已经偷跑,在产品中使用了Rails 6预发布版。

Rails 6.0: Action Mailbox, Action Text, Multiple DBs, Parallel Testing, Webpacker by default, and Zeitwerk! What a monumental final release. Massive upgrades, intense conceptual compression. Our Best Rails Yet! https:/ /t.co/DQEzRKSCh

—DHH (@dhh) August 16, 2019

Rails 6中加入了两大新框架Action Text以及Action Mailbox。Action Text集成了Trix编辑器、Active Storage、图像处理以及文本处理流程,可以让开发者在应用程序中,加入丰富的文本内容。Trix编辑器可以处理连接的格式、引用、列表,或是嵌入图像等内容,而在应用程序产生的RichText模型,将与现存Active Storage模型相关联,所有嵌入图片或是附件,将会交由Active Storage自动进行存储。

Active Storage提供将文件上传到Amazon S3、Google Cloud Storage或微软Azure Storage等云计算存储服务的功能,并将这些文件附加到Active Record对象上,同时也可以用来开发和测试本地端磁盘功能,还能将文件镜像复制到从属服务,进行数据备份或是搬迁。

而Action Mailbox是第二个被加入到Rails 6.0的新框架,能用来路由收到的电子邮件到类似控制器的邮件信箱,以便在Rails中进行处理,而其同时也附带了Amazon SES、Mailgun、Mandrill、Postmark以及SendGrid的连接程序(Ingress)。当然,开发者也可以直接使用内置的Exim、Postfix和Qmail连接程序,处理收到的电子邮件。

David Hansonn提到,Action Mailbox、Action Text框架和Active Storage一样,都是从项目管理软件Basecamp 3借来,并经过改良后放在Rails 6中,虽然Rails本来就有使用Action Mailer处理邮件的方法,但是不够灵活好用,也无法与新的电子邮件处理平台集成,因此Action Mailbox将会取代Action Mailer,旧的框架将会在未来弃用。

Rails 6支持多数据库连接,因此开发者可以在单个应用程序中,轻松地连接多个数据库。David Hansonn表示,Rails 6会加入这样的功能,是考量开发者可能有扩展存储或是隔离数据的需求,或是想借由在副本数据库,分离读取和写入数据以提高存储性能,应用程序便可以将数据纪录拆分到不同的数据库,但无论哪一种用途,Rails 6.0都有提供简单易用的API,供开发者使用。

另外,Rails 6现在也支持平行测试,让开发者可以便用计算机中的所有核心,以更快地速度执行大型的测试组件。现在每个测试工作程序都能使用专属的计算资源,包括独立的数据库以及线程,不会再像以前一样,进行测试时,只有一个CPU在工作满负荷,而其他CPU遭到闲置。其他较小的更新,还有Webpacker现成为默认JavaScript打包程序。