2022 年 12 月 23 日,星期五

在 Docker 中运行 Rails,本地?环境询问器等!

由 gregmolnar 发布

嗨,这是Greg,向你提供 Rails 中的最新更改!

仅在重新加载 all_queries 默认作用域此拉取请求更改了重新加载的当前行为,它应用所有默认作用域(如果有任何标记为 all_queries: true)。正确的行为是在重新加载时仅应用 all_queries: true 默认作用域。

允许 assets:precompile 在不传入 RAILS_MASTER_KEY 的情况下在生产构建步骤中运行在将资产编译到生产中作为图像构建步骤的一部分时,传入实际 RAILS_MASTER_KEY 非常不方便。因此,可以通过 ENV[“SECRET_KEY_BASE_DUMMY”] = 1 像我们在开发和测试中一样传入一个虚拟 secret_key_base。这不会访问任何真实凭据或消息验证器,但允许构建步骤完成,因为它通常不需要构建步骤。

当替换节点未更改时,避免在动作文本中进行不必要的替换当替换逻辑基于某个条件并且它返回相同未更改节点时,这是性能改进。可以在拉取请求中找到示例和基准。

停靠的 Rails CLI对于初学者来说,首次使用所有必需的依赖项设置 Rails 可能是一项艰巨的任务。停靠的 Rails CLI 使用 Docker 映像使其变得更加容易,只需要安装 Docker。 

添加默认 Dockerfile此拉取请求默认向新应用添加 Docker 文件:Dockerfile.dockerignorebin/docker-entrypoint。这些文件可以使用 –skip-docker 跳过。它们旨在作为应用程序的生产部署的起点。不用于开发(为此使用上述停靠的 Rails)。你可以在拉取请求中查看有关如何使用它的更多详细信息。

添加 Message{Encryptors,Verifiers}#transitional

此提交向 ActiveSupport::MessageEncryptorsActiveSupport::MessageVerifiers 添加了一个 transitional 属性。在构建消息加密器/验证器时,将其设置为 true 将交换前两个轮换。 

在执行应用程序的滚动部署时,这可能很有用,其中尚未更新的服务器仍然必须能够验证来自已更新服务器的消息。 

添加 Rails.env.local?此拉取请求添加了 Rails.env.development? || Rails.env.test?.的简写。

ActiveRecord::Relation#none?/#any?/#one? 添加模式参数支持 可枚举版本的 #none?#any?#one? 谓词方法都采用可选模式参数,而非块,但在本次更改之前,ActiveRecord::Relation 版本并未采用。

23 个人 在上周为 Rails 做出贡献!圣诞快乐,我们特别号的下周见

订阅 以通过邮件接收这些更新。