2017 年 3 月 12 日,星期日

本周 Rails 新闻:发行后修复大量问题,更多内容。

作者 vipulnsward

大家好!

今天由 Vipul 从德里向大家报道,在这个充满色彩的洒红节周末 💥
 
一起来看看 Ruby on Rails 世界的最新新闻吧!
如此多的修复以及更多内容。

Google Summer of Code 2017

我们非常高兴地宣布,Ruby on Rails 已被接纳为 Google Summer of Code (GSoC) 2017 版的组织!

已修复

确保清除本地缓存,即使它会引发错误

当中间件链中引发错误时,它有时不会被 LocalCache::Middleware 捕获。

此更改可确保我们安全地捕获错误,并成功清除本地缓存。

修复含有子目录的 rake db:schema:load

先前 db:schema:load 不能使用基于子目录的迁移。

此更改开始在 assume_migrated_upto_version 中使用 Migrator.migration_files 来修复此问题。

修复 ActionController::Renderer 中的错误 asset_url

此更改修复了使用 ActionController::Renderer 渲染模板时 asset_url 错误的问题。

修复 has_many 关联中 select 块不返回新构建的记录

QueryMethods 中的 select 方法也是一个可枚举方法。理想情况下,带有块的可枚举方法应委托给 CollectionProxy 中的记录,而不是作用域。

此更改修复了 select 块不返回 has_many 关联中新构建的记录的错误。

更新 titlelize 正则表达式以允许使用撇号

在先前的修复中,titlelize 中的正则表达式已更新为不匹配撇号,以便更好地反映转换的性质。

不幸的是,这产生了这样的副作用:破坏子字符串中第一个单词的大写,例如

>> "This was 'fake news'".titleize
=> "This Was 'fake News'"

此更改通过扩展环视来检查撇号之外的单词字符来修复此错误。

使用 JSON 数组修复 deserialize

由于反序列化已损坏,JSON 数组数据以字符串化形式返回。

此更改修复了反序列化错误。

已弃用

弃用 Migrator.schema_migrations_table_name

SchemaMigration 模型已提取,并在 Migrator.schema_migrations_table_name 以前使用的地方用 SchemaMigration.table_name 取代。

Migrator.schema_migrations_table_name 现已弃用,推荐使用 SchemaMigration.table_name

改进

向 AC::Parameters 中添加 reverse_merge/reverse_merge!

此更改向 ActionController::Parameters 添加了 reverse_mergereverse_merge! 方法,类似于其相应的 Hash 方法。

如果驱动程序不支持,则不要截屏

Capybara::RackTest::Driver 不支持截屏。如果我们对 Capybara::RackTest::Driver 调用 #save_screenshot,它将引发错误。

为防止错误,如果系统测试中的驱动程序不支持截屏,那么在此更改之后我们不会调用它。

本周还有许多来自 20 位贡献者 的许多很好的 Pull Request,其中有 4 位是首次贡献者。感谢大家!

除了对代码的更改之外,在本周和上周,我们还有许多其他好消息。

直到下周!