2012 年 10 月 29 日,星期一

Rails 3.2.9.rc1 已发布!

由 spastorino 发布

大家好,

Rails 3.2.9.rc1 已发布。如果不发现任何回归问题,我将于本周四 1 号发布 3.2.9 最终版本。如果您发现回归问题,请在 GitHub 上发起一个问题并提及我,给我发邮件或 Twitter 私信,无论哪种方式,都请告诉我 :)。

自 3.2.8 以来的变更

Action Mailer

  • 在未调用 mail() 时不呈现视图。修复 #7761

    Yves Senn

Action Pack

  • 接受 link_to 帮助器的 :remote 作为符号选项。Riley Lynch

  • 在视图测试用例之外向 assert_template 传递 :locals 选项时发出警告。修复 #3415

    Yves Senn

  • 重命名 ActionController::TemplateAssertions 上的内部变量,以防止命名冲突。@partials、@templates 和 @layouts 现在已加上下划线前缀。修复 #7459

    Yves Senn

  • resourceresources 不修改已传递的选项哈希。修复 #7777

    Yves Senn

  • 预编译的资源包括从 foo.js 到 foo/index.js 以及反之亦然的别名。

    # Precompiles phone-<digest>.css and aliases phone/index.css to phone.css.
    config.assets.precompile = [ 'phone.css' ]
    
    # Precompiles phone/index-<digest>.css and aliases phone.css to phone/index.css.
    config.assets.precompile = [ 'phone/index.css' ]
    
    # Both of these work with either precompile thanks to their aliases.
    <%= stylesheet_link_tag 'phone', media: 'all' %>
    <%= stylesheet_link_tag 'phone/index', media: 'all' %>
    

    Jeremy Kemper

  • assert_template 不能再通过与模板名称匹配的任何字符串传递。

    之前,当我们有模板 /layout/hello.html.erb 时,assert_template 可通过与任何字符串匹配传递。这种行为允许出现 config.digest = false,这与

    assert_template "layout"
    assert_template "out/hello"
    

    现在仅可通过

    assert_template "layout/hello"
    assert_template "hello"
    

    修复了 #3849。

    Hugolnx

  • ActionDispatch::Http::UploadedFile 处理为 Rack::Test::UploadedFile,不要对其调用 to_param。由于 Rack::Test::UploadedFile 与 API 不兼容,因此需要执行此操作才能测试依赖 tempfile 的文件上传。

    Tim Vandecasteele

  • 修复了使用 :module 选项设置范围的速记路由未将模块添加到控制器的错误,如问题 #6497 中所述。现在应能正常工作

    scope :module => "engine" do
      get "api/version" # routes to engine/api#version
    end
    

    Luiz Felipe Garcia Pereira

  • 针对 asset_path 尊重 config.digest = false

    以前,asset_path 内部仅尊重 :digest 选项,但忽略全局配置设置。这意味着不能将 config.digest = falseconfig.compile = false 结合使用,而此版本已更正了该行为。

    Peter Wagenet

  • 修复了 #7646,当引发异常时,日志现在显示正确的状态代码。

    Yves Senn

  • 修复同时使用 **disabled** 和 **discard** 选项时处理日期选择的问题。修复了 #7431。

    Vasiliy Ermolovich

  • 当 **option_tags** 为 nil 时修复 select_tag。修复了 #7404。

    Sandeep Ravichandran

  • 现在,如果文件不存在,**javascript_include_tag :all** 将不会包含 **application.js**。Prem Sichanugrist

  • 为所有会话存储支持 Cookie jar 选项(例如,domain:all)。修复了 GH#3047、GH#2483。

    Ravil Bayramgalin

  • 优化 send_file 的性能:避免必须将打开的文件句柄作为响应正文传递。Rack::Sendfile 通常会拦截响应并直接使用路径,所以没有理由再打开文件。此性能优化还解决了 jRuby 编码的问题,也是回溯的原因,请参阅问题 #6844。

    Jeremy Kemper 和 Erich Menge

活动模型

  • 由于生成器发生了变化,nil 值和空字符串现在会生成闭合标签,因此不是生成这个

    <pseudonyms nil=\"true\"></pseudonyms>
    

    而是生成这个

    <pseudonyms nil=\"true\"/>
    

    Carlos Antonio da Silva

活动记录

  • 修复了一个错误,其中 **update_columns** 和 **update_column** 不会允许你更新主键列。

    Henrik Nyh

  • 解码数据库连接 URL 中经过 URI 编码的属性。

    Shawn Veader

  • 修复 AR#dup 以使 dup 的对象中的验证错误失效。以前,原始对象和 dup 的对象共享相同的错误。

    • Christian Seiler*
  • 在从保留连接哈希中删除时进行同步。修复了 #7955

  • PostgreSQL 适配器在数据库中使用多个模式和域时正确提取默认值。修复了 #7914

    Arturo Pie

  • 修复加载从其他表中选择列的集合关联时出现的弃用通知,如果以前使用该关联构建了新记录。

    Ernie Miller

  • postgres 适配器现在支持包含大写字母的表。修复了 #5920

    Yves Senn

  • **CollectionAssociation#count** 在父记录未持久化的前提下返回 **0**,无需查询。

    之前

    person.pets.count
    # SELECT COUNT(*) FROM "pets" WHERE "pets"."person_id" IS NULL
    # => 0
    

    之后

    person.pets.count
    # fires without sql query
    # => 0
    

    Francesco Rodriguez

  • 修复在 **has_many :through** 关联上 **reset_counters** 崩溃的问题。修复了 #7822。

    lulalala

  • ConnectionPool 识别 **checkout_timeout** spec 键优先于旧的 **wait_timeout** spec 键,可用于避免与 mysql2 使用 **wait_timeout** 时发生冲突。关闭了 #7684。

    jrochkind

  • 将 **field_changed?** 重命名为 **_field_changed?**,以便用户可以创建一个名为 field 的字段

    Akira Matsuda,由 Steve Klabnik 回溯

  • 修复通过从未保存模型的 **has_many :through** 关联对 **collection=[]** 使用时创建关联模型的问题。修复了 #7661。

    Ernie Miller

  • 只解释正常的 CRUD sql(select / update / insert / delete)。解决无法解释的 SQL 问题。关闭 #7544 #6458。

    kennyj

  • 回溯测试覆盖率,确保 PostgreSQL 自动重新连接功能保持正常。

    Steve Jorgensen

  • 执行 mysql/mysql2 中的 databases.rake 时,使用 config[‘encoding’] 而不是 config[‘charset’]。database.yml 中的正确选项是“encoding”。

    kennyj

  • 修复 ConnectionAdapters::Column.type_cast_code 整形转换,始终调用 #to_i 将值转换回整数。修复 #7509。

    Thiago Pradi

  • 修复时间列类型转换,将无效的时间字符串值正确地返回为 nil。

    Adam Meehan

  • 修复使用配置的 inheritance_column 时的 becomes

    Yves Senn

  • 修复具有相同外键的多个 belongs_to 关联且其中一个具有计数器缓存时 reset_counters。修复 #5200。

    Dave Desrochers

  • 在 dirty tracking 中比较时间戳属性时,对 usec 四舍五入。修复 #6975。

    kennyj

  • 使用相反的父级作为 has_many 关联的第一个和最后一个子级。

    Ravil Bayramgalin

  • 修复 Column.microseconds 和 Column.fast_string_to_date,以避免将时间戳秒转换为浮点数,因为它偶尔会导致微妙时间发生不准确的情况。修复 #7352。

    Ari Pollak

  • 修复跳过回调的 increment!decrement!toggle!。修复 #7306。

    Rafael Mendonça França

  • 修复 AR#create,使其在引发 AR::RecordInvalid 时返回一条未保存记录。修复 #3217。

    Dave Yeu

  • 为具有空值或相等值分配的 has_one 关联移除不必要的交易。修复 #7191。

    kennyj

  • 允许存储与空列配合使用。修复 #4840。

    Jeremy Walker

  • 从 postgresql 适配器中的系统查询中移除预先准备好的语句。修复 #5872。

    Ivan Evtuhovich

  • 确保 :environment 任务在 db:schema:loaddb:structure:load 之前执行。修复 #4772。

    Seamus Abshere

Active Resource

  • 无更改

Active Support

  • 添加 logger.push_tags 和 .pop_tags 以补充 logger.tagged。

    class Job
      def before
        Rails.logger.push_tags :jobs, self.class.name
      end
    
      def after
        Rails.logger.pop_tags 2
      end
    end
    

    Jeremy Kemper

  • 添加对 ActiveSupport::TimeWithZone#strftime 的 %:z 和 %::z 格式字符串支持。[修复 #6962] kennyj

Railties

  • 不热加载 app/assets 和 app/views。Elia Schito

  • 在 ruby_version_check.rb 中更新受支持的 ruby 版本错误消息。Lihan Li

SHA-1

  • 24af6eff6b7c647d04eee9585184ba89f0746d40 actionmailer-3.2.9.rc1.gem
  • c34ea8f12308c9f6fc4d6b31ce8caa2a562b210a actionpack-3.2.9.rc1.gem
  • 8b3171fdde905c76a541286192e6cef211d83a70 activemodel-3.2.9.rc1.gem
  • 0752e47880da4bb9be2b0309bce5a444a9271420 activerecord-3.2.9.rc1.gem
  • d8c1eeedbf3bc33d1560700cc70cb1752cdc811a activeresource-3.2.9.rc1.gem
  • 8ad917f70cc3b0a04864c8aa705a0e4997736872 activesupport-3.2.9.rc1.gem
  • 6fdc627a032f1f3ded7830e044298e20fd3fc6ce rails-3.2.9.rc1.gem
  • 444da0c3f2a1e3200d2a613973062c2d3e4ad7d0 railties-3.2.9.rc1.gem

您可以在此处找到 v3.2.8 和 v3.2.9.rc1 之间的更改列表 here

感谢大家!