2013年7月23日,星期二

[公告] Rails 3.2.14 已发布!

发布者:rafaelfranca

大家好,

很高兴地宣布 Rails 3.2.14 已发布。这是一个 bug 修复版本,包含超过 150 个提交。

另外,我想宣布下一个 3.2.x 版本,3.2.15,将是**这个系列最后一个 bug 修复版本**。之后我们将只发布安全修复。所以,如果您在 3.2.x 中遇到认为应该包含在 3.2.15 中的问题,请通过 GitHub issues 页面 告知我们,三个月后我们将评估是否是发布的时候了。

自 3.2.13 以来的变更

Action Mailer

无变更。

Action Pack

  • 从路由范围合并 :action,并在同时存在 :controller:action 时分配端点。端点分配仅在选项哈希中不存在 :to 时发生,因此只会影响使用简写语法的路由(即端点从路径推断)。

    修复 #9856

    Yves Senn, Andrew White

  • 始终转义 link_to_unless 方法的结果。

    之前

    link_to_unless(true, '<b>Showing</b>', 'github.com')
    # => "<b>Showing</b>"
    

    之后

    link_to_unless(true, '<b>Showing</b>', 'github.com')
    # => "&lt;b&gt;Showing&lt;/b&gt;"
    

    dtaniwaki

  • 对 #asset_path 使用不区分大小写的 URI 正则表达式。

    这修复了使用不同大小写的相同资源路径生成不同 URI 的问题。

    之前

    image_tag("HTTP://google.com")
    # => "<img alt=\"Google\" src=\"/assets/HTTP://google.com\" />"
    image_tag("http://google.com")
    # => "<img alt=\"Google\" src=\"http://google.com\" />"
    

    之后

    image_tag("HTTP://google.com")
    # => "<img alt=\"Google\" src=\"HTTP://google.com\" />"
    image_tag("http://google.com")
    # => "<img alt=\"Google\" src=\"http://google.com\" />"
    

    David Celis + Rafael Mendonça França

  • 修复多文件字段上的显式名称。如果文件字段标签具有 multiple 选项,则会将其转换为数组字段(追加 []),但如果将显式名称传递给 file_field,则不会追加 []。修复 #9830。

    Ryan McGeary

  • 修复 3.2.13 中资源加载性能。

    问题 #8756 使用 Sprockets 解析已存在于磁盘上的文件,对于这些文件,其扩展名无需重写。

    修复 #9803。

    Fred Wu

  • 修复 ActionController#action_missing 未被调用。修复 #9799。

    Janko Luin

  • 当 units 哈希不包含所需键时,ActionView::Helpers::NumberHelper#number_to_human 会返回未修改的数字,例如当提供的数字小于提供的最大键时。

    示例

    number_to_human(123, units: {})                # => 123
    number_to_human(123, units: { thousand: 'k' }) # => 123
    

    修复 #9269。移植 #9347。

    Michael Hoffman

  • 将 I18n 区域回退包含在视图查找中。修复 GH#3512。

    Juan Barreneche

  • 修复 ActionDispatch::Request#formats 在 Accept 请求头为空字符串时的情况。修复 #7774 [移植 #8977, #9541]

    Soylent + Maxime Réty

Active Model

无变更。

Active Record

  • 在保存父对象时,不要重新创建已销毁的关联。

    修复 #11450。

    Paul Nikitochkin

  • 在 PostgreSQL 适配器的 exec_cache 中,不要浅层复制原始异常。

    修复 #11260。

    Rafael Mendonça França

  • 修复 ActiveRecord::Store 错误跟踪其属性变更。修复 #10373。

    Janko Marohnić

  • 修复了一个阻止使用默认 STI 继承列(ActiveRecord::Base.inheritance_column = ‘some_column’)的 bug。

    chapmajs + Takehiro Adachi

  • 修复 mysql2 适配器在连接关闭时执行查询时抛出正确异常。

    Yves Senn

  • 修复了 Company.new.contract_ids 会错误地加载所有非关联合同的 bug。

    示例

    company = Company.new # Company has many :contracts
    
    # before
    company.contract_ids # => SELECT ... WHERE `contracts`.`company_id` IS NULL
    
    # after
    company.contract_ids # => []
    

    Jared Armstrong

  • 修复 has_many 关联的 :primary_key 选项。修复 #10693。

    Yves Senn

  • 修复 #3329 引入的 bug。现在,当自动保存关联时,删除操作发生在插入和保存之前。这可以防止在创建的记录与被销毁的记录具有相同唯一索引字段值时发生的“重复唯一值”数据库错误。

    移植 #10417

    Johnny Holton

  • 修复了在某些条件下,Active Record 会产生类似 “SELECT DISTINCT DISTINCT” 的无效 SQL。

    移植 #6792。

    Ben Woosley

  • 在 rake_tasks、console 和 runner 的 railtie hook 中需要 ActiveRecord::Base,以避免循环常量加载问题。

    移植 #7695。

    修复 #7683 和 #882

    Ben Holley

  • 在 ActiveRecord::Relation 合并中维护 joins 的上下文。移植 #10164。

    Neeraj Singh + Andrew Horner

  • 确保 EXPLAIN 命令永远不会由 select_db 调用触发。

    Daniel Schierbeck

  • 撤销对 pluck 的更改,该更改在 relation 已有 select 子句时忽略了 select 子句。这在稳定版本中引起了回归。

    修复 #9777。

    Rafael Mendonça França

  • 在递减计数器缓存之前,确认记录尚未被销毁。

    Ben Tucker

  • PostgreSQL bigint 类型的默认值现在可以正确解析并转储到 schema。移植 #10098。

    Erik Peterson

  • 当设置 auto_explain_threshold_in_seconds 且连接适配器不支持 explain 时,移除了警告。这引起了回归,因为 Active Record Railtie 在应用程序启动时尝试连接到开发数据库。

    Rafael Mendonça França

  • inheritance_column 被显式设置时,不要重置它。移植 #5327。

    kennyj + Fred Wu

  • 修复了在 PostgreSQL 中抛出可翻译异常时发生错误异常的问题。

    kennyj

  • 在 dump structure 之后重置 structure.sql 中的 postgres 搜索路径,以便在多 schema 使用时找到 schema_migrations 表。修复 #9796。

    Juan M. Cuello + Dembskiy Alexander

  • 如果关联目标已过时,则重新加载它。当模型未保存时,@stale_state 应该为 nil。修复 #7526。

    Larry Lv

  • 在执行 db:fixtures:load 时不要读取 CSV 文件。CSV 对 fixture 的支持已移除一段时间,但该任务仍会加载它们,尽管之后代码会查找相关的 yaml 文件。

    kennyj

Active Resource

  • 修复了 ActiveResource 模型忽略 ActiveResource::Base.include_root_in_json 的问题。从已分离的 rails/activeresource 仓库移植。

    Xinjiang Lu

Active Support

  • 使 Time.at_with_coercion 保留秒的小数部分并返回本地时间。

    修复 #11350

    Neer Friedman, Andrew White

  • 修复 ActiveSupport::TaggedLogging 在未提供块时,错误地将程序名提供为与日志消息相同的名称。

    Carson Reinke

  • 重写 Time.at 以支持在仅用一个参数调用时传递 Time 类值。

    Andrew White

  • 撤销 ActiveSupport::JSON.encode 中关于 unicode 字符编码的更改。这导致了回归,因为结果字符串总是返回 UTF-8。它还改变了这个方法在稳定版本中的行为。修复 #9498。

    Rafael Mendonça França

  • 修复 ActiveSupport::TimeZone.parse 在时间位于本地 DST 转换点时的问题。修复 #9678。

    Andrew White

Railties

  • 修复了导致 rake test:benchmark, rails profilerrails benchmarker 崩溃的 bug。修复 #4938。移植 rails/rails-perftest#2。

    Dmitry Vorotilin + Yves Senn

  • 添加对 runner hook 的支持。

    移植 #7695。

    Ben Holley

  • 修复了 scaffold 生成器在指定 --assets=false --resource-route=false 时的 bug。修复 #9525。

    Arun Agrawal

完整列表

要查看完整的更改列表,请在 GitHub 上查看所有提交

SHA-1

如果您想验证您的 gem 与我上传的 gem 是否相同,请使用这些 SHA-1 哈希值

  • dd2333744644870efcd149e3adf3c3b6934ec6ed actionmailer-3.2.14.gem
  • efcfc238115f7db57650dbab348d0b5192f98770 actionpack-3.2.14.gem
  • d72fadd29e10e2ead9fb0d7371bed5a7fb32c044 activemodel-3.2.14.gem
  • af7585f9a58d5e643d6e332daede4a0b8ee1de7a activerecord-3.2.14.gem
  • 188924273139cea07032254987d748aee45f5800 activeresource-3.2.14.gem
  • e221938399c9cb040ef9285f52b18bfa3e59b10a activesupport-3.2.14.gem
  • a5d44cf4c65798e925d998f416804cd23c914001 rails-3.2.14.gem
  • 4e99050427fb47ff515051e78eedf328c9ec5676 railties-3.2.14.gem

我想感谢所有为此版本做出贡献的开发者,特别是所有尝试过 release candidates 的人。