2014年4月8日,星期二

Rails 4.1.0:Spring、Variants、Enums、Mailer 预览、secrets.yml

由 dhh 发布

Rails 4.1.0 可能只是一个小的版本号更新,但它包含的功能却一点也不小。这意味着从 4.0.x 升级到 4.1.0 应该是一个相对平缓的过程,因为大部分的改动都是新增功能或改进,而不是破坏向后兼容性的变更。让我们来看看一些新功能。

Spring 是我们新的应用程序预加载器。它大大加快了大型应用程序运行测试、rake 和生成器的速度。你可以将我们以前的做法想象成命令行中的 CGI 模式。每次运行 rake,你的整个应用程序都会从零开始加载,并在命令完成后立即销毁。有了 Spring,你的应用程序会成为一个持久化的进程,可以跨多个命令重用,因此只有第一次运行是缓慢的。我们还会自动检测代码更改,并仅重新加载那些部分。这会产生巨大的差异!

Variants 允许你为相同的 mime 类型(例如 HTML)拥有不同的模板和操作响应。这对于任何为移动客户端提供服务的 Rails 应用程序来说都是一个神奇的解决方案。你现在可以为桌面、平板电脑和手机视图拥有单独的模板,同时共享相同的控制器逻辑。这是 Basecamp 为移动应用采用混合原生/HTML 策略背后的秘密武器:一个 Rails 应用服务于桌面浏览器、移动浏览器、原生移动应用。重用的好处是巨大的,生产力提升是惊人的。真的。

Enums 封装了将状态字段限制在少数几个选项中的模式。它提供了足够的语法糖,可以让你用 `tinyint` 存储的状态字段变得美味,同时还能避免重复的状态字符串,从而获得优化优势。贫穷版的状态机?不,只是大多数时间够用而已。

Mailer 预览 可以让你非常简单地使用测试数据直观地迭代你的 Action Mailer 视图,这样你就可以获得与应用程序中其他视图相同的开发流程。做出更改,然后重新加载以查看效果。非常简单。而且肯定比从静态文件开始(然后必须将其转换为邮件模板),或者尝试将 HTML 从日志文件中复制粘贴到浏览器中查看(来吧,你肯定经历过!)要好得多。

最后,我们通过两项更改致力于将生产环境密码移出你的应用程序仓库。第一项是 **secrets.yml**,它提供了一个方便的接口,用于访问通过环境变量或部署脚本设置的秘密。默认情况下,它用于保护 Cookie 完整性的 Secret Token,但你可以根据需要将其用于应用程序中的任何其他内容。第二项是,我们增加了对 `database.yml` 中数据库 URL 的支持,并且默认情况下,在生成的文件中将引用基于 ENV 的 URL。安全万岁!

这只是对这个“好东西包”的快速浏览。如果你想要详细了解,可以查看我们从 4-0-stable 到 v4.1.0 之间完成的 5200 个提交。没错,五千个。见证这个全副武装、完全可运行的社区的力量!

你也可以通过深入阅读 Yves 和 Godfrey 在 4.1 版本说明指南功能详解 中精彩的作品,来消化这些变化并看到一些实际的代码。

Gems 现在已经发布到 RubyGems 上了,所以 `gem install rails` 就可以安装最新版本。或者你也可以使用 v4.1.0 标签。

尽情享受吧,我们希望在两周后的 RailsConf 上见到你!