大家好,
很高兴地宣布 Rails 3.2.14 已发布。这是一个 bug 修复版本,包含超过 150 个提交。
另外,我想宣布下一个 3.2.x 版本,3.2.15,将是**这个系列最后一个 bug 修复版本**。之后我们将只发布安全修复。所以,如果您在 3.2.x 中遇到认为应该包含在 3.2.15 中的问题,请通过 GitHub issues 页面 告知我们,三个月后我们将评估是否是发布的时候了。
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')
# => "<b>Showing</b>"
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 profiler 和 rails 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 上查看所有提交。
如果您想验证您的 gem 与我上传的 gem 是否相同,请使用这些 SHA-1 哈希值
我想感谢所有为此版本做出贡献的开发者,特别是所有尝试过 release candidates 的人。