即将来临的Rails 4.0将放弃Ruby 1.8支持,改进后台任务、缓存等多项内容

2012年1月发布的Rails 3.2在这一年里进行了一些日常更新——几周前刚发布了3.2.8版本。去年,Rails/master分支已经切换到了4.0.0.beta版本,4.0版本的发布暂时安排在2012年夏季。虽然没有公布新的发布日期,但Rails 4.0的组成越来越明朗了:在Boston RB的一场演讲里,Rails的贡献者Prem Sichanugrist大概介绍了一下Rails 4.0里将发生的变化。主要的特性也罗列在这份版本说明草案里,其中包括:

  • 只支持Ruby 1.9.3
  • 强参数
  • Queue API
  • 缓存改进

去年,DHH宣布了放弃Ruby 1.8的决定,因此Rails 4.0不支持Ruby 1.8也没什么好奇怪的,距离Ruby 1.8的末日又近了一步。

强参数提供了mass-assignment保护,其做法是将参数移动到正确的地方:放在控制器里,而非模型里。新的方法在过滤参数时更加方便,哪个参数是允许的也更加明显了。此外,“可以将参数标记为必须的,在预先定义的raise/rescue流程中最终轻松流转到400 Bad Request。”也可以通过插件在Rails 3.2.8里使用强参数。

ActiveSupport::Queue继承自标准的Ruby队列,在一个后台线程里运行队列任务。任务就是一个简单的对象,带有run方法。为了让测试更简单,队列系统是可配置的,可以改为同步处理任务。

Cache Digests是一个新的插件,让Russian-doll缓存方案更易维护,这种缓存方案需要手工查找并增加依赖模版的版本号:

深入Cache Digests:有了这个插件,视图中所有对#cache的调用都会自动追加一段该模版及其所有依赖的摘要!因此,不再需要手动增加你正修改模版的版本号,或者关心那些依赖于此的其他模版,

Rails 4还将支持HTTP/1.1 PATCH方法:

多个扩展了Hypertext Transfer Protocol(HTTP)的应用程序需要一种特性来进行部分资源修改。现有的HTTP PUT方法只允许完整替换文档。[RFC 5789]添加了一个新的HTTP方法——PATCH,用它可以修改已有的HTTP资源。

PATCH和PUT一样,都会被映射为update方法,因此不会破坏向后兼容性。Rails Issue Tracker上的讨论中有更多关于其动机和结果的信息。

其他的新特性和改变包括导出Schema的缓存、PostgreSQL数组支持、用来清理重复路由的Routing Concerns以及对ActiveRecord::Relation的更新。

新版本一如既往地祈免了一些过时的特性。版本说明草案里已经包含了一份祈免组件和方法的清单。其中一些东西只是移到了自己的gem里,比如ActiveRecord::SessionStore和ActiveResource。Prem Sichanugrist在他的访谈里概述了新的祈免策略:Rails 4.0一经发布,Rails 3.1就将完成自己的使命,一些3.2的特性会带有祈免警告,这些特性会在Rails 4.1版本中被移除。这应该能实现3.2到4.0的平滑升级,不会带来大的风险。

目前还没有发布Rails 4.0的RC版本,但应该会在圣诞前发布。

查看英文原文:Upcoming Rails 4.0 Release Drops Ruby 1.8 Support, Improves Background Jobs, Caching And More

你可能感兴趣的:(即将来临的Rails 4.0将放弃Ruby 1.8支持,改进后台任务、缓存等多项内容)