BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Mirko Stocker 关注 1 他的粉丝 ,译者 丁雪丰 关注 4 他的粉丝 发布于 2012年9月28日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT