大家好,
Rails 3.1.1.rc3 已发布。请大家多多尝试,这是我们修复可能出现的回归错误并发布一个漂亮的 3.1.1 稳定版本的机会。如果没有回归错误,我将在10月7日发布3.1.1 最终版。如果您发现任何回归错误,请尽快通过电子邮件、Twitter 或 GitHub 联系我。
Action Mailer
Action Pack
stylesheet_link_tag(‘/stylesheets/application’) 等类似辅助方法不再抛出 Sprockets::FileOutsidePaths 异常 [Santiago Pastorino]
确保 default_asset_host_protocol 被正确遵守,修复 #2980。 [José Valim]
更改 rake db:schema:dump 任务,使其同时运行 :environment 和 :load_config,因为仅运行 :load_config 会导致 dumper 在不包含像 foreigner 和 spatial_adapter 等扩展的情况下运行。
这撤销了在此处的更改:https://github.com/rails/rails/commit/5df72a238e9fcb18daf6ab6e6dc9051c9106d7bb#L0L324
我假设 :load_config 需要与 :environment 分开调用,就像文件中其他数据库操作一样,否则就只能回到“task :dump => :environment do”这种写法。
[Ben Woosley]
更新至 rack-cache 1.1。
1.1 版本之前的版本会在 config.action_controller.perform_caching 为 true 时删除 If-Modified-Since 和 If-Not-Modified 标头。这会导致两个问题:
[Brendan Ribera]
确保 assets:precompile 任务的增强功能只运行一次 [Sam Pohlenz]
TestCase 应遵循 view_assigns API,而不是自行拉取变量。 [José Valim]
当 asset pipelining 开启时,javascript_path 和 stylesheet_path 现在指向 /assets。 [Santiago Pastorino]
button_to 支持 form 选项。现在您可以传递例如 ‘data-type’ => ‘json’。 [ihower]
当 asset pipelining 开启时,image_path 和 image_tag 应使用 /assets。修复 #3126 [Santiago Pastorino 和 christos]
在运行 rake assets:precompile 时避免使用现有的预编译资源。修复 #3119 [Guillermo Iguaran]
将资源复制到非摘要文件名 [Santiago Pastorino]
使 `config.digest = false` 的优先级高于 manifest.yml 资源摘要的存在 [christos]
为 stylesheet_link_tag 方法转义选项 [Alexey Vakhov]
使用 (Rake.)ruby 重新启动 assets:precompile 任务,而不是 Kernel.exec,以便在 Windows 上运行 [cablegram]
传递给 process 的 env 变量不应在 process 方法中被修改。 [Santiago Pastorino]
rake assets:precompile 会加载应用程序但不会初始化它。
这意味着对于应用程序开发人员来说,在 config/initializers/* 中添加的配置将不会被执行。
插件开发者需要通过添加 :group => :assets 来为他们旨在资产组中运行的 initializer 进行特殊处理。 [José Valim]
Sprockets 使用 config.assets.prefix 作为 asset_path [asee]
FileStore key_file_path 正确地将文件名限制在 255 个字符内。 [phuibonhoa]
修复 Hash#to_query 与 html_safe 字符串的边缘情况。 [brainopia]
允许 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 缓存现在是每个进程的缓存。
数据库适配器使用语句池来限制数据库上打开的预备语句数量。该限制默认为 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
ActiveSupport
ruby193:String#prepend 也不安全 [Akira Matsuda]
修复 Time.=== 对 Time 子类的明显错误 [jeremyevans]
添加了修复,以便当缓存目录尚不存在时,文件存储不会引发异常。这可能发生在 delete_matched 在缓存中保存任何内容之前被调用时。 [Philippe Huibonhoa]
修复了 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 上找到完整的更改列表:github。以及标记为 v3.1.1 的已关闭的问题。您还可以查看 v3.1.1.rc2 和 v3.1.1.rc3 之间的新内容。
您还可以查看我们尚未关闭的问题。
感谢大家!