内容简介:Rails 是一个 Web 应用程序框架,是 Ruby 最早也是最出名的一个框架,其中包括根据模型-视图-控制器(MVC) 模式,创建 Web 应用程序所需的所有内容 。Rails 可以说是 MVC 开发的先驱者,了解 MVC 模式是了解 Ra...
Rails 是一个 Web 应用程序框架,是 Ruby 最早也是最出名的一个框架,其中包括根据模型-视图-控制器(MVC) 模式,创建 Web 应用程序所需的所有内容 。Rails 可以说是 MVC 开发的先驱者,了解 MVC 模式是了解 Rails 的关键。
Rails 7.0 是一个大版本,实现了一个愿景:一种真正的全栈 Web 开发方法,以可以同时应对前端和后端的挑战。比如 Rails 应用有新的默认选择: Hotwire,它的 Turbo 和 Stimulus 组合几乎包含所有增强用户体验的工具;又或者无需将 Webpack 与 Webpacker 紧密耦合,Rails 7.0 可以使用新的 jsbundle -rails
集成将任何 JavaScript 打包器松散结合,无论是 esbuild、rollup.js 或是Webpack。
此版本还有相当多更新项,下面摘录一些较为重要的更新内容作介绍:
活动记录(Active Record)支持工作中加密
Rails 7.0 向 Active Record 添加了活动记录加密属性( encrypted attributes to Active Record,),除了传统的静态和传输中覆盖之外,应用程序还可以提供工作中加密(at-work encryption)。
加密敏感属性会增加一个额外的安全层,就算恶意攻击者获取了数据库、快照或者日志的访问权限,也看不懂加密信息,另外,通过使用 Active Record Encryption,可以在代码级别中定义应用敏感信息的构成。
点此查看关于使用加密属性的完整指南。
使用 Marginalia 样式标记跟踪查询来源
大概十年前(2012),Rails 引入基于 Basecamp 的 Marginalia:使用 SQL 注释标记来跟踪查询来源。现在这个外部 gem 已经作为 QueryLogs 上传到 Active Record 中。
异步查询加载
如果有一个控制器操作需要加载两个不相关的查询时,Rails 7.0 可以通过 Relation#load_async 并发执行。
比如:以前如果有三个复杂的查询,每个查询需要 100 毫秒,那么就必须先花费 300 毫秒来逐一执行它们。现在可以并行运行,总共只花费 100 毫秒。
Zeitwerk
Rails 的自动加载是它的特性之一,不过老的 const_missing 方法有一系列问题,因此引入新的 Zeitwerk 代码加载器 完全取代它。比较老的应用升级会比较麻烦,可查看完整的升级指南。
其他一些亮点
- 默认情况下,Spring 不再启用。
- ActionController::Live#send_stream 可以轻松地传输动作控制器实时生成的流文件。
- 现在并行测试将比较 CPU 内核计数和测试计数,并相应地调整并行度。
- Active Storage 现在使用更快、更安全的
libvips
作为默认变体处理器。
更多详尽内容可以在更新公告中查看。
以上所述就是小编给大家介绍的《Rails 7.0 发布,实现愿景:真正的全栈 Web 开发方法》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- [译] 微软Edge与开源Chromium:我们的愿景
- 重磅发布:MongoDB 公布开发Realm 平台的愿景
- MEF:第三类网络愿景加速网络虚拟化进程
- 中国联通赫罡:NFV愿景美好 商用仍存巨大挑战
- 微软Build2019剖析:以Azure云为延展的新愿景
- 分布式账本才是中本聪愿景的真正继承者
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learning JavaScript
Shelley Powers / Oreilly & Associates Inc / 2006-10-17 / $29.99
As web browsers have become more capable and standards compliant, JavaScript has grown in prominence. JavaScript lets designers add sparkle and life to web pages, while more complex JavaScript has led......一起来看看 《Learning JavaScript》 这本书的介绍吧!