Rails 7.0 发布,实现愿景:真正的全栈 Web 开发方法
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
作为默认变体处理器。
更多详尽内容可以在更新公告中查看。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Apache Struts 2.5.28 GA
Apache Struts 2.5.28 已发布,Apache Struts 2 是一个优雅、可扩展的框架,可用于创建企业级 Java Web 应用程序。Struts 2 旨在简化从构建到部署,再到维护应用程序整个开发周期。 主要变更内容: [WW-5149] - 修复 Struts 2.5.27 中的 labelposition 属性损坏 详情查看 release notes,官方强烈建议所有开发者升级至此版本。 Apache Struts 2.5.x 系列对以下规范版本有最低要求:Servlet API 2.4, JSP API 2.0 和 Java 7。 下载地址:https://struts.apache.org/download.cgi#struts-ga 此外,Apache Struts 安全团队还宣布,所有使用最新 Struts 2.5.x 系列的用户应将Log4j库升级到最新版本,以解决远程代码执行漏洞。
- 下一篇
Apache Log4j 2.12.2 发布
Apache Log4j 2.12.2 已发布。Log4j 是一个日志记录框架,Log4j 2 是对 Log4j 的升级,提供了重大改进,超越其前身 Log4j 1.x,并提供许多其它现代功能 ,例如对标记的支持、使用查找的属性替换、lambda 表达式与日志记录时无垃圾等。 下载地址:https://logging.apache.org/log4j/log4j-2.12.2/download.html 此版本的变化只针对 CVE-2021-44228 和 CVE-2021-45046 漏洞,适用于仍使用 Java 7 的开发者。 移除 PatternLayout 中的消息查找 (Message Lookups) 功能,"%m{lookup}", "%m{nolookup}" 及其变种仍可作为转换模式被接受,但不会产生影响 默认禁用 JNDI,且当启用时只允许 "java" 协议 使 JNDI 查找无法运行,并删除消息查找功能 由于 Log4j 2.12.2 的 API,以及许多核心组件,保持了与以前版本的二进制兼容性,推荐开发者升级至此版本。 最后,Apache Log4j 2.12...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Hadoop3单机部署,实现最简伪集群
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 设置Eclipse缩进为4个空格,增强代码规范