大家好,
Rails 3.1.1 已发布。此版本至少需要 sass-rails 3.1.4
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]
如果资产管道处于开启状态,javascript_path 和 stylesheet_path 现在会引用 /assets。[Santiago Pastorino]
button_to 支持表单选项。现在您可以传递例如 ‘data-type’ => ‘json’。[ihower]
如果开启了资产管道,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]
重新启动 assets:precompile 任务,使用 (Rake.)ruby 替代 Kernel.exec,因此可以在 Windows 上使用 [cablegram]
传递给进程的环境变量不应在进程方法中修改。[Santiago Pastorino]
rake assets:precompile
加载应用程序但不会初始化它。
对应用程序开发人员来说,这意味着添加在 config/initializers/* 中的配置不会执行。
插件开发人员需要特殊处理其初始化程序,通过添加 :group => :assets 以便在资产组中运行。[José Valim]
Sprockets 使用 config.assets.prefix 用于 asset_path [asee]
FileStore key_file_path 限制文件名长度为 255 个字符。[phuibonhoa]
修复 Hash#to_query 边缘案例,修复带有 html_safe 字符串的情况。[brainopia]
允许资产标签帮助程序方法接受 :digest => false 选项,以便完全避免生成摘要。这对于从静态 HTML 文件或从电子邮件中链接资产很有用,因为用户可能查看带有较旧资产的较旧 HTML 电子邮件。[Santiago Pastorino]
如果 config.assets.compile 为 false,请不要将 Sprockets 服务器安装在 config.assets.prefix 上。[Mark J. Titorenko]
当 Sprockets 无法使用控制器时(例如使用 asset_path 的 Sass 文件),在资产中设置相对 URL 根目录。修复 #2435 [Guillermo Iguaran]
修复基本身份验证凭证生成,以避免产生换行符。GH #2882
修复了 config.assets.digest 和 config.assets.compile 为 false 且请求的资产未预编译时的资产管道的行为。之前请求的资产无论如何都会被编译,而忽略 config.assets.compile 标志为 false。[Guillermo Iguaran]
CookieJar 现在可枚举。修复 #2795
修复当 rake assets:precompile 编译某些 .erb 文件时引发的 AssetNotPrecompiled 错误。参见 GH #2763 #2765 #2805 [Guillermo Iguaran]
在更改默认资产前缀时,清单被正确放置在资产路径中。修复 #2776 [Guillermo Iguaran]
修复 stylesheet_link_tag 和 javascript_include_tag,以在调试开启时尊重用户传递的其他选项。[Guillermo Iguaran]
当传递一个空值时,修复 ActiveRecord#exists?
修复 assert_select_email 以处理多部分和非多部分电子邮件,因为由于新邮件 gem 中的更改,该方法在 Rails 3.x 中停止正常工作。
主动模型
移除对 bcrypt-ruby 的硬依赖,以避免使 ActiveModel 依赖于二进制库。如果您想使用 ActiveModel::SecurePassword,您必须将 gem 显式添加到您的 Gemfile 中。
gem ‘bcrypt-ruby’, ‘~> 3.0.0’
参见 GH #2687。[Guillermo Iguaran]
活动记录
添加对 preload_associations 方法的弃用。修复 #3022。
[Jon Leighton]
在加载使用 set_primary_key 的模型时无需数据库连接。GH #2807。
[Jon Leighton]
修复 select() 与 habtm 关联一起使用的情况,例如 Person.friends.select(:name)。GH #3030 和 #2923。
[Hendy Tanata]
修复目标上带有自定义主键的 belong_to polymorphic。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 的顺序。见 GH #2832 [Arun Agrawal]
不要计算抽象类的表名。修复抽象类中设置主键的问题。见 GH #2791。[Akira Matsuda]
代理 Psych 错误以及较差的 yaml 格式化。修复 GH #2645 和 GH #2731
对方法 #last 和 #first 使用 LIMIT 单词。修复 GH #2783 [Damien Mathieu]
活动资源
活动支持
ruby193:String#prepend 也存在不安全问题 [Akira Matsuda]
修复明显对 Time 子类的 Time.=== 的破坏 [jeremyevans]
添加修复,以便在缓存目录还不存在时文件存储不会引发异常。如果在缓存中保存任何内容之前调用 delete_matched,就会出现这种情况。[Philippe Huibonhoa]
修复时区查找每次都需要 tzinfo 的性能问题 [Tim Lucas]
现在使用 Array#extract_options! 时将 ActiveSupport::OrderedHash 标记为可提取 [Prem Sichanugrist]
钢轨
将 jquery-rails 添加到插件的 Gemfile,测试/虚拟应用程序需要它。关闭 #3091。[Santiago Pastorino]
rake assets:precompile
加载应用程序但不会初始化它。
对应用程序开发人员来说,这意味着添加在 config/initializers/* 中的配置不会执行。
插件开发者需要特殊处理他们的初始化程序,这些初始化程序旨在通过添加 :group => :assets 在资产组中运行。
你可以在 github 上找到变更的详尽列表。以及 标有 v3.1.1 的已关闭问题。
感谢大家!