大家好!
本周有48位贡献者推动了Rails的发展!想成为其中一员吗?看看issues列表并贡献一份力量吧!
Rails 4.2.6.rc1 和 4.1.15.rc1 已发布!如果没有发现回归问题,预计最终发布将在2016年3月4日左右。
这两者都允许外部代码运行用户代码块来执行“工作”,其单元大小与 Web 请求类似,而无需深入了解 Action Dispatch。
此更改旨在允许感兴趣的调用者(Sidekiq、Action Cable)直接执行
Rails.application.reloader.wrap do
# run some user code
end
Rails 将会处理互锁、代码重新加载、将 Active Record 连接返回池以及其他任何可能相关的事情。如果你曾经在作业等并发处理中遇到过问题,这将会令人兴奋。
结合Puma的变更,Puma 3.0 及以上版本引入了从命令行启动时读取 `config/puma.rb` 的兼容性。Rails 现在依赖 Puma 3.0,以便开箱即用地支持 `config/puma.rb`。
`force_ssl` 选项将每个请求重定向到 HTTPS。此更改现在允许通过 `exclude` 将重定向限制在白名单请求上。
config.ssl_options = { redirect: { exclude: -> request { request.path !~ /healthcheck/ } } }
此更改使应用生成器创建一个新文件 `config/spring.rb`,该文件告诉 Spring 监视其他常用文件,例如 `.ruby-version`。然后可以编辑此文件以适应每个应用程序。
此更改在开始渲染模板时添加了日志“Rendering ...”,以便在最开始记录我们已开始渲染某些内容。
这有助于轻松区分从控制器和视图调用的查询。
在 `config/routes.rb` 中通过路径指定 `:controller` 和 `:action` 值一直是 Rails 中许多导致安全版本发布问题的潜在原因。鉴于此,最好显式地白名单控制器和操作,而不是尝试黑名单或清理不良值。此更改弃用了在路由中传递这些选项。
此更改弃用了 `ActiveRecord::ConnectionAdapters::DatabaseStatements` 中的 `{insert|update|delete}_sql`,转而使用 `{insert|update|delete}` 公共方法。最初,`{insert|update|delete}_sql` 是受保护的方法,并未 intended for external use。
`Module.local_constants` 已被弃用。在 Ruby 1.9 之后(Rails 5 支持 Ruby 2.2+),我们可以通过 `Module.constants(false)` 轻松获取本地定义的常量。因此,`Module.local_constants` 不再是必需的。
以上是本周 Rails 的全部内容。一如既往,还有很多我们无法在此涵盖的内容,所以请自行查看更改。
下次再见!