星期五,2016 年 3 月 4 日

Rails 本周动态:Rails 4.2.6.rc1 和 4.1.15.rc1、AS::Executor 和 AS::Reloader API 等等!

发布者 vipulnsward

大家好!

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

本周的 Rails 贡献者

本周,48 位贡献者帮助推动了 Rails 的进步!想成为其中之一吗?查看一下 问题 列表,贡献一份力量!

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

这两个 API 都允许外部代码运行用户代码块来执行“工作”,这些工作与 Web 请求的规模类似,而不需要了解 Action Dispatch 的详细信息。

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

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

然后,Rails 将负责互锁、代码重新加载、将 Active Record 连接返回给连接池以及其他可能相关的所有操作。如果你曾经被并发任务处理等活动困扰,那么它会非常令人兴奋。

更新内容

Rails 现在默认使用 Puma 3

通过 Puma 中的相关更改,从命令 $ rails server 启动时,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。然后,可以编辑此文件以适应每个应用程序。

开始渲染模板时,添加日志“正在渲染 …“

此更改增加了日志“正在渲染 …“,用于记录我们在一开始就开始渲染某项内容。

这有助于轻松识别从控制器与视图调用的查询。

弃用事项

弃用路由中的 :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 为受保护方法,并未在外部使用。

不赞成 Module.local_constants

Module.local_constants 现已不再建议使用。在 Ruby 1.9 发布后(并且由于 Rails 5 支持 Ruby 2.2+),我们可以很容易地通过 Module.constants(false) 获取已在本地定义的常数。因此,Module.local_constants 不再需要。

概括

Rail 中的本周新闻就这些。与往常一样,有很多内容我们无法在这里介绍,因此请亲自了解 更改

下次见!