2016年3月4日,星期五

本周 Rails:Rails 4.2.6.rc1 和 4.1.15.rc1,AS::Executor 和 AS::Reloader API 等!

由 vipulnsward 发布

大家好!

我是Vipul,为大家带来Rails的最新消息!

本周 Rails 贡献者

本周有48位贡献者推动了Rails的发展!想成为其中一员吗?看看issues列表并贡献一份力量吧!

Rails 4.2.6.rc1 和 4.1.15.rc1 已发布

Rails 4.2.6.rc1 和 4.1.15.rc1 已发布!如果没有发现回归问题,预计最终发布将在2016年3月4日左右。

发布 AS::Executor 和 AS::Reloader API

这两者都允许外部代码运行用户代码块来执行“工作”,其单元大小与 Web 请求类似,而无需深入了解 Action Dispatch。

此更改旨在允许感兴趣的调用者(Sidekiq、Action Cable)直接执行

Rails.application.reloader.wrap do
  # run some user code
end

Rails 将会处理互锁、代码重新加载、将 Active Record 连接返回池以及其他任何可能相关的事情。如果你曾经在作业等并发处理中遇到过问题,这将会令人兴奋。

新功能

Rails 现在默认使用 Puma 3

结合Puma的变更,Puma 3.0 及以上版本引入了从命令行启动时读取 `config/puma.rb` 的兼容性。Rails 现在依赖 Puma 3.0,以便开箱即用地支持 `config/puma.rb`。

为 SSL 中间件添加 `exclude` 选项

`force_ssl` 选项将每个请求重定向到 HTTPS。此更改现在允许通过 `exclude` 将重定向限制在白名单请求上。

config.ssl_options = { redirect: { exclude: -> request { request.path !~ /healthcheck/ } } }

改进

在新建应用中生成 config/spring.rb

此更改使应用生成器创建一个新文件 `config/spring.rb`,该文件告诉 Spring 监视其他常用文件,例如 `.ruby-version`。然后可以编辑此文件以适应每个应用程序。

添加日志“Rendering ...”,开始渲染模板时

此更改在开始渲染模板时添加了日志“Rendering ...”,以便在最开始记录我们已开始渲染某些内容。

这有助于轻松区分从控制器和视图调用的查询。

弃用

弃用路由中的 :controller 和 :action 路径参数

在 `config/routes.rb` 中通过路径指定 `:controller` 和 `:action` 值一直是 Rails 中许多导致安全版本发布问题的潜在原因。鉴于此,最好显式地白名单控制器和操作,而不是尝试黑名单或清理不良值。此更改弃用了在路由中传递这些选项。

弃用 `DatabaseStatements` 中的 `{insert|update|delete}_sql`

此更改弃用了 `ActiveRecord::ConnectionAdapters::DatabaseStatements` 中的 `{insert|update|delete}_sql`,转而使用 `{insert|update|delete}` 公共方法。最初,`{insert|update|delete}_sql` 是受保护的方法,并未 intended for external use。

弃用 `Module.local_constants`

`Module.local_constants` 已被弃用。在 Ruby 1.9 之后(Rails 5 支持 Ruby 2.2+),我们可以通过 `Module.constants(false)` 轻松获取本地定义的常量。因此,`Module.local_constants` 不再是必需的。

总结

以上是本周 Rails 的全部内容。一如既往,还有很多我们无法在此涵盖的内容,所以请自行查看更改

下次再见!