2010年5月23日,星期日

Ruby on Rails 2.3.6 发布

由 Jeremy Kemper 发布

我们发布了 Ruby on Rails 2.3.6:六个月的 bug 修复、少量新功能,并且为 Rails 3 奠定了坚实的基础。

我们在 Rails 2.3.6 中弃用了一些不常用且陈旧的功能,以便在 Rails 3 中完全移除它们。如果您的应用程序在 Rails 2.3.6 上运行而没有出现弃用警告,那么您将顺利过渡。

这道慢炖佳肴由我们全志愿厨房的 87 位提交者 奉上。

现在,让我们打开好礼袋吧!

Action Pack

  • 将 Rack 从 1.0.1 升级到 1.1.0。
  • XSS 防护:更新以匹配 Rails 3,并迁移到官方插件 http://github.com/rails/rails_xss
  • Cookies:便捷的 cookie jar 插件,可以一次性设置永久 cookie、签名 cookie 或两者兼备:cookies.permanent.signed[:remember_me] = current_user.id阅读更多
  • Flash:将 `alert` 和 `notice`(许多应用程序中最常见的 flash 键)提升到 `self.alert = '...'` 和 `self.notice = '...'`。添加 `redirect_to url, :alert => '...'` 和 `:notice => '...'`。 阅读更多
  • i18n:本地化 `label` 助手。

Active Record

  • 命名空间:通过定义 `self.table_name_prefix` 支持模块上的可选表名前缀。 阅读更多
  • Destroy 使用乐观锁。
  • 计数器缓存:使用 Post.reset_counters(1234, :comments) 来计算帖子 1234 的评论数并重置其 comments_count 缓存。
  • PostgreSQL:如果支持,始终使用符合标准的字符串。
  • MySQL:添加索引长度支持。 阅读更多
  • MySQL:`add_` 和 `change_column` 支持使用 :first => true:after => :other_column 进行列定位。

Active Support

  • 将 i18n 从 1.3.3 升级到 1.3.7。
  • 将 TZInfo 从 0.3.12 升级到 0.3.16。
  • 多字节:加速字符串验证和清理。
  • JSON:如果可用,则使用 YAJL 进行 JSON 解码。gem install yajl-ruby
  • 测试:添加 `assert_blank` 和 `assert_present`。 阅读更多
  • 核心:从 Ruby 1.8.8 backport `Object#singleton_class`,弃用我们的 `Object#metaclass`。
  • 核心:添加 `Object#presence`,如果对象 #present? 则返回该对象,否则返回 nil。示例:region = params[:state].presence || params[:country].presence || 'US'
  • 核心:添加 `Enumerable#exclude?` 以匹配 `include?`。
  • 核心:将 `Array#rand` 重命名为 `Array#random_element`,以避免与 `Kernel#rand` 冲突。
  • 核心:将 `Date#` 和 `Time#last_(month|year)` 重命名为 `#prev_(month|year)`,以兼容 Ruby 1.9 及更高版本。

Active Resource

  • JSON:将 ActiveResource::Base.include_root_in_json = true 设置为序列化为模型名称 → 属性的哈希,而不是裸属性哈希。默认为 false。

Action Mailer

  • 将 TMail 从 1.2.3 升级到 1.2.7。

Railties

  • 屏蔽 RubyGems 1.3.6 的弃用警告。

请参阅 提交日志 以获取完整信息。