大家好!
我是 Vipul,我来给大家带来来自 Rails 的最新消息!
本周,48 位贡献者帮助推动了 Rails 的进步!想成为其中之一吗?查看一下 问题 列表,贡献一份力量!
Rails 4.2.6.rc1 和 4.1.15.rc1 已发布!如果未发现回归,预计最终版本将在 2016 年 3 月 4 日左右发布。
这两个 API 都允许外部代码运行用户代码块来执行“工作”,这些工作与 Web 请求的规模类似,而不需要了解 Action Dispatch 的详细信息。
此更改旨在允许感兴趣的调用方 (Sidekiq、Action Cable) 仅执行
Rails.application.reloader.wrap do
# run some user code
end
然后,Rails 将负责互锁、代码重新加载、将 Active Record 连接返回给连接池以及其他可能相关的所有操作。如果你曾经被并发任务处理等活动困扰,那么它会非常令人兴奋。
通过 Puma 中的相关更改,从命令 $ rails server
启动时,Puma 3.0 及更高版本推出了从 config/puma.rb
读取的兼容性。Rails 现在依赖于 Puma 3.0,因此对 config/puma.rb
的支持随即推出。
exclude
选项force_ssl
选项会将每个请求重定向到 HTTPS。此更改现在允许将重定向限制为仅具有 exclude
的白名单请求
config.ssl_options = { redirect: { exclude: -> request { request.path !~ /healthcheck/ } } }
此更改使应用程序生成器创建新文件 config/spring.rb
,它告诉 Spring 监视其他常见文件,例如 .ruby-version
。然后,可以编辑此文件以适应每个应用程序。
此更改增加了日志“正在渲染 …“,用于记录我们在一开始就开始渲染某项内容。
这有助于轻松识别从控制器与视图调用的查询。
允许通过 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 中的本周新闻就这些。与往常一样,有很多内容我们无法在这里介绍,因此请亲自了解 更改。
下次见!