Rails 2.3.3 发布、Rails 3.0 与 Merb 现状

  • Werner Schuster
  • 张龙

2009 年 7 月 24 日

话题:RubyWeb框架Ruby on Rails重构语言 & 开发

近日 Rails 2.3.3 发布了

除了修复一些 bug 外,该版本还增加了一些新特性,以下内容来自于发布说明:

  • touch 是个用于更新记录时间戳的便捷方法,仅此而已。其灵感来源于应用的模型一旦发生变化,它可能会“touch”到其他模型,比如说在保存或删除掉评论信息后还要更新 parent.replies_changed_at 时间戳。[..]
  • 为 belongs_to 增加了:primary_key 选项以对遗留下来的 schema 和那些使用单独的 UUID 主键的场景提供更广泛的支持:belongs_to :employee, :primary_key => 'SSN', :foreign_key => 'EMPID' 。[..]
  • 更易于使用的编码 [JSON] API
  • 针对 json 与 yajl 程序库的后端解码,这要比默认的 YAML 后端更快。

与此同时,Rails 3 的开发工作也在如火如荼的进行当中。Yehuda Katz 就Rails 3 的新架构以及如何重构像 Rails 这样庞大的代码基发表了几篇博文。

Rails 3 的目标之一就是将 Merb 的模块化与定义良好的内部 API 引入到 Rails 代码基中。Yehuda 的关于 ActionController 与 ActionView 接口的文章就谈到了这一点。现在有一点是很清楚的,那就是 Merb 与 Rails 的融合将是大势所趋,现在也正在朝这个方向前进。

Rails 3 的开发工作也影响着 Merb 的开发。最近 Merb 邮件列表上的一些讨论谈到了 Merb 1.1 的现状,而目前的计划是确保能将 Merb 平滑移植到 Rails 3 上,这需要对 Rails 3 的架构有足够的了解。

尽管如此,对于很多项目来说,Merb 仍然是可行的解决方案,正如Ezra Zygmuntowicz(Merb 创建者)所述

我还是很乐意使用 Merb 构建应用,http://engineyard.com/solo 就是构建在 Merb 上的。到目前为止,我还没发现遗漏了哪些东西,也没看到哪些特性和 bug 会对使用 Merb 构建应用造成影响。

想了解 Rails 3 的计划吗?看看David Heinemeier Hansson 在 RailsConf'09 上的演讲是个不错的主意。

查看英文原文:Rails 2.3.3 Released and the State of Rails 3.0 and Merb

RubyWeb框架Ruby on Rails重构语言 & 开发