2011年9月29日,星期四

[ANN] Rails 3.1.1.rc2

发布者 spastorino

大家好,

Rails 3.1.1.rc2 已发布。请尝试一下,这是我们修复您可能发现的回归问题并发布一个漂亮的 3.1.1 稳定版本的机会。如果没有回归问题,我将在10月3日发布 3.1.1 最终版。如果您发现任何回归问题,请尽快通过电子邮件、Twitter 或 GitHub 与我联系。

变更

Action Mailer

  • 无变更

Action Pack

  • 允许 asset 标签助手方法接受 :digest => false 选项,以便完全避免摘要生成。当用户可能查看包含旧资产的旧 html 电子邮件时,从静态 html 文件或电子邮件链接资产非常有用。 [Santiago Pastorino]

  • 如果 config.assets.compile 为 false,则不将 Sprockets 服务器安装在 config.assets.prefix。 [Mark J. Titorenko]

  • 为 Sprockets 设置相对 URL 根目录(例如 Sass 文件使用 asset_path 时,控制器不可用)。修复 #2435 [Guillermo Iguaran]

  • 修复基本身份验证凭证生成,避免换行。GH #2882

  • 修复了当 config.assets.digest 和 config.assets.compile 都为 false 且请求的资产未预编译时的资产管道行为。之前,即使 config.assets.compile 标志为 false,请求的资产仍然会被编译。 [Guillermo Iguaran]

  • CookieJar 现在是 Enumerable。修复 #2795

  • 修复了当 rake assets:precompile 编译某些 .erb 文件时抛出的 AssetNotPrecompiled 错误。参见 GH #2763 #2765 #2805 [Guillermo Iguaran]

  • 当默认资产前缀更改时,Manifest 会正确放置在资产路径中。修复 #2776 [Guillermo Iguaran]

  • 修复了 stylesheet_link_tag 和 javascript_include_tag 在调试开启时,能够遵守用户传递的附加选项。 [Guillermo Iguaran]

  • 修复当传递 nil 值给 ActiveRecord#exists? 时的情况

  • 修复 assert_select_email 以支持 multipart 和 non-multipart 电子邮件,因为由于新 mail gem 的更改,该方法在 Rails 3.x 中已不再正常工作。

Active Model

  • 删除了对 bcrypt-ruby 的硬性依赖,以避免 ActiveModel 依赖于二进制库。如果您想使用 ActiveModel::SecurePassword,必须显式地将其添加到您的 Gemfile 中。

    gem ‘bcrypt-ruby’, ‘~> 3.0.0’

    参见 GH #2687。 [Guillermo Iguaran]

Active Record

  • 为 preload_associations 方法添加了弃用警告。修复 #3022。

    [Jon Leighton]

  • 加载使用 set_primary_key 的模型时,不需要数据库连接。GH #2807。

    [Jon Leighton]

  • 修复了使用 select() 带有 habtm 关联的情况,例如 Person.friends.select(:name)。GH #3030 和 #2923。

    [Hendy Tanata]

  • 修复了带有自定义主键的 belongs_to 多态关系。GH #3104。

    [Jon Leighton]

  • CollectionProxy#replace 应该更改数据库记录,而不是仅仅变异数组。修复 #3020。

    [Jon Leighton]

  • mysql 和 sqlite 中的 LRU 缓存现在是每个进程的缓存。

    • lib/active_record/connection_adapters/mysql_adapter.rb: LRU 缓存的键是每个进程 ID。
    • lib/active_record/connection_adapters/sqlite_adapter.rb: 同上
  • 数据库适配器使用语句池来限制数据库上打开的预备语句数量。该限制默认为 1000,但可以通过在数据库配置中更改 'statement_limit' 来调整。

  • 修复了在默认作用域中使用 'preload'、'joins' 或 'eager_load',并将默认作用域模型包含在嵌套的通过关联中时出现的冲突。(GH #2834。)[Jon Leighton]

  • 确保我们在 HasManyAssociation#inverse_updates_counter_cache? 中不将字符串与符号进行比较。修复 GH #2755,其中计数器缓存可能被错误地减了两次。

    [Jon Leighton]

  • 当 belongs_to 的外键为 nil 时,不向数据库发送任何查询。修复 GH #2828。 [Georg Friedrich]

  • 修复了 find_in_batches 方法,使其不包含来自 default_scope 的 order。参见 GH #2832 [Arun Agrawal]

  • 不为抽象类计算表名。修复了在抽象类中设置主键的问题。参见 GH #2791。 [Akira Matsuda]

  • 不良 yaml 格式的 Psych 错误会被代理。修复 GH #2645 和 GH #2731

  • 在 #last 和 #first 方法中使用 LIMIT 关键字。修复 GH #2783 [Damien Mathieu]

Active Resource

  • 无变更

Active Support

  • 修复了 TimeZone 查找每次都需要 tzinfo 的性能问题 [Tim Lucas]

  • ActiveSupport::OrderedHash 现在在使用 Array#extract_options! 时被标记为可提取 [Prem Sichanugrist]

Railties

  • 将 jquery-rails 添加到插件的 Gemfile 中,test/dummy 应用需要它。修复 #3091。 [Santiago Pastorino]

  • rake assets:precompile 会加载应用程序但不会初始化它。

    这意味着对于应用程序开发人员来说,在 config/initializers/* 中添加的配置将不会被执行。

    插件开发人员需要通过添加 :group => :assets 来为旨在资产组中运行的 initializer 添加特殊处理。

您可以在 github 上找到详尽的更改列表。以及 为 v3.1.1 关闭的问题。您还可以查看 v3.1.1.rc1 和 v3.1.1.rc2 之间的新增内容

您还可以查看我们尚未关闭的问题

感谢大家!