2013 年 7 月 23 日,星期二

[公告] Rails 3.2.14 已发布!

由 rafaelfranca 发布

各位,

我高兴地宣布 Rails 3.2.14 已发布。这是一个缺陷修复版本,包括 150 多次提交。

我还想宣布下一个 3.2.x 版本 3.2.15 将是此家族的最后一个缺陷修复版本。在发布该版本之后,我们仅会发布安全修复程序。因此,如果您在 3.2.x 上遇到了您认为应包含在 3.2.15 中的问题,请通过 GitHub 问题页面 告诉我们,我们将在 3 个月后评估是否发布。

自 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

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

    Ryan McGeary

  • 修复 3.2.13 中的资产加载性能。

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

    修复 #9803。

    Fred Wu

  • 修复未调用 ActionController#action_missing 的问题。修复 #9799。

    Janko Luin

  • 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

  • 当 Accept 请求头为空字符串时,修复 ActionDispatch::Request#formats。修复 #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ć

  • 修复一个 bug,该 bug 妨碍使用默认的 STI 继承列(ActiveRecord::Base.inheritance_column = 'some_column')。

    chapmajs + Takehiro Adachi

  • 修复 mysql2 适配器在断开连接的情况下执行查询时引发正确的异常。

    Yves Senn

  • 修复一个 bug,其中 Company.new.contract_ids 错误地加载所有未关联的合同。

    示例

    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 可能生成无效 SQL 的 bug,例如:“SELECT DISTINCT DISTINCT”。

    #6792 的移植。

    Ben Woosley

  • 在 rake_tasks、控制台和运行器的 railtie 钩子中需要 ActiveRecord::Base,以避免循环常量加载问题。

    移植 #7695。

    修复 #7683 和 #882

    Ben Holley

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

    Neeraj Singh + Andrew Horner

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

    Daniel Schierbeck

  • 还原对 pluck 的更改,该更改忽略了关系已经具有选择子句时的选择子句。由于它在稳定版本中改变了行为,因此造成了回归。

    修复 #9777。

    Rafael Mendonça França

  • 确认记录尚未被销毁,然后才递减计数器高速缓存。

    Ben Tucker

  • PostgreSQL bigint 类型的默认值现在可以正确解析并转储到架构中。移植 #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

  • 修复了在使用多个模式时,在将结构转储到 structure.sql 中后,重置结构中的 Postgres 搜索路径,以便查找 schema_migrations 表。解决了问题 #9796。

    Juan M. Cuello + Dembskiy Alexander

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

    Larry Lv

  • 执行 db:fixtures:load 时,不要读取 CSV 文件。CSV 对 fixture 的支持已于一段时间前删除,但任务仍然在加载它们,即使稍后代码改为查找相关的 yaml 文件也是如此。

    kennyj

活动资源

  • 修复了 ActiveResource 模型忽略 ActiveResource::Base.include_root_in_json 的问题。已从现在独立的存储库 rails/activeresouce 中反向移植。

    Xinjiang Lu

主动支持

  • 使 Time.at_with_coercion 保留第二部分级并返回本地时间。

    修复了问题 #11350

    Neer FriedmanAndrew White

  • 修复了 ActiveSupport::TaggedLogging 错误地提供了与日志消息相同的程序名称,即使未提供块也是如此。

    Carson Reinke

  • 用一个参数调用时,覆盖 Time.at 以支持传递类似时间的变量。

    Andrew White

  • 将 unicode 字符编码的更改从 ActiveSupport::JSON.encode 还原。这导致了一个回归,结果字符串总是返回 UTF-8。而且,它更改了此方法在稳定版本上的行为。修复了问题 #9498。

    Rafael Mendonça França

  • 修复了当时间处于本地夏令时跳转时 ActiveSupport::TimeZone.parse 的问题。修复了问题 #9678。

    Andrew White

Rails

  • 修复导致 rake test:benchmarkrails profilerrails benchmarker 崩溃的错误。修复了问题 #4938。反向移植 rails/rails-perftest#2。

    Dmitry Vorotilin + Yves Senn

  • 添加了对运行器 hook 的支持。

    移植 #7695。

    Ben Holley

  • 修复了使用 --assets=false --resource-route=false 的脚手架生成器的 bug。修复了问题 #9525。

    Arun Agrawal

完整列表

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

SHA-1

如果您想验证您的 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

感谢所有帮助完成此版本的人,尤其是那些尝试过发行候选版本的人。