经过了六个月的努力,发布了 4 个 beta 版本、2 个 RC 版本,Rails 5.0 终于正式发布了!
Rails 社区的公告中说,“这是由数百位贡献者,历经上千次提交而达成的一个新的里程碑,Rails 5.0 无疑是迄今为止最好、最完善的 Rails 版本。 经过了这么久的发展,社区依然具有如此活力,感谢每一位帮助过我们的人们!”
在本次发布的 Rails 5.0 中,有两大亮点:
Action Cable
Action Cable 是一个重新打造的框架,用于在 Rails 中控制 WebSocket。它是一个完全整合的解决方案,包括了连接管理、用于服务器端处理的 channel 层以及客户端交互的 JavaScript 层。它增加了易用性,让设计类似聊天、提示、现场等实时功能更加容易。如果你想看看它的具体表现,你可以看看它在 Basecamp 3 强大的表现。
Action Cable 中最棒的地方是你可以在你的 WebSocket 里面访问你的整个 Active Record 和 PORO 域模型。如果你想为 WebSocket 响应复用服务器端模板的话,甚至还有一个全新打造的 ActionController::Renderer 系统可以使你在控制器之外渲染你的模板。
在开发模式时,Action Cable 可以运行在你的应用内部,你只需要将默认的开发服务器从 Webrick 切换到 Puma 即可。在产品环境中,你也可以让 Action Cable 运行自己的服务器。
API 模式
Rails 不仅是你使用服务器端 HTML 模板渲染来构建全栈应用的最佳选择,而且也是开发客户端 JavaScript 或原生应用的好伴侣,只需要用 JSON 和后端通讯即可。新推出的 -api 模式可以让你使用 rails new backend --api
创建一个新的 Rails 应用,这样会采用 JSON 而不是 HTML 作为应用骨架和配置。
这个功能还需要更多的完善,不过这是一个良好的开端。
其它亮点
- 不用再使用 rake 命令了,统一采用一个 rails 命令即可。比如现在用
bin/rails db:migrate
取代了bin/rake db:migrate
。 - 新的属性 API。
- 生成器创建的所有模型都以 ApplicationRecord 为默认父类。
- 等等……
具体你应该看看各个部分的变更日志,都有不少变化:
- Action Mailer CHANGELOG
- Action Pack CHANGELOG
- Action View CHANGELOG
- Active Model CHANGELOG
- Active Record CHANGELOG
- Active Support CHANGELOG
- Active Job CHANGELOG
- Railties CHANGELOG
更多的细节,你可以看看完整的 Rails 5.0 发布公告,Claudio B. 做了一篇简短的演示来介绍了他喜欢的一些改进(和一些功能的去除),DHH 本人也录制了一段基础性的介绍视频: 让我们用 Rails 5 打造一个博客 。
此外要注意,根据 Rails 的维护策略,Rails 5.0 的发布代表着以后将只会对 5.0.x 进行错误修复,安全问题的修复会包括 5.0.x 和 4.2.x,(如果 5.1 出来了就是 5.1.x、5.0.x 和 4.2.x)。也就是说,**4.1.x 及其以下版本原则上不支持了!**而且,Ruby 2.2.2 及以上版本也将仅支持 Rails 5.0 及以上版本。
(题图来自:mobiloitte.com)