一旦你踏上了 Rails 的列车,你就知道沿途的每一站都会是一段美好的时光。这个发布候选版也不例外,我们为其注入了许多精心设计的改进,而升级过程却不会让你烦恼。
更快的开发模式和路由
最显著的新特性是开发模式的速度得到了极大的提升。受 Active Reload 的启发,我们现在只重新加载你实际更改过的文件的类。对于大型应用程序来说,这种区别是巨大的。
得益于 新的 Journey 引擎,路由识别速度也大大加快,链接生成速度也更快(尤其是在一个页面上有 100 多个链接时,这一点尤为明显)。
解释查询
我们增加了一种 快速简便的方法来解释 ARel 生成的查询。在控制台中,你可以运行类似 puts Person.active.limit(5).explain 的命令,你就能得到 ARel 生成的查询的解释(这样你就能轻松地看到它是否使用了正确的索引)。在开发模式下,甚至还有一个默认阈值,如果查询运行时间超过半秒,它就会自动内联解释——怎么样!
标记日志
当你运行一个多用户、多账户的应用程序时,能够按用户过滤日志会非常有帮助。现在有了 TaggedLogging 包装器。它的工作原理如下:
Logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT)) Logger.tagged(“BCX”) { Logger.info “Stuff” } # 日志输出 “[BCX] Stuff” Logger.tagged(“BCX”) do Logger.tagged(“Jason”) do Logger.info “Stuff” # 日志输出 “[BCX] [Jason] Stuff” end end
Active Record 存储
键值存储很棒,但并不总是需要为了一个小的变量键操作而进行大量的设置。现在有了 Active Record 存储。
class User < ActiveRecord::Base store :settings, accessors: [ :color, :homepage ] end
u = User.new(color: ‘black’, homepage: ‘37signals.com’) u.color # 访问器存储的属性 u.settings[:country] = ‘Denmark’ # 任何属性,即使没有通过访问器指定
这只是其中的几个亮点。完整的 发布说明 详细说明了每一次细微的更改。
鉴于这是一个发布候选版,我们非常期待听到您的反馈。我们希望这是一个快速的 RC 阶段,但请通过 报告 bug 来扰乱这一计划。
一如既往,您可以通过运行 gem install rails --pre 来安装一个发布候选版。