如何在 Rails >= 7.2 中继续使用 Rails.application.secrets

💡 原文英文,约300词,阅读约需1分钟。
📝

内容提要

在Rails 7.1中,`Rails.application.secrets`被弃用,建议使用`Rails.application.credentials`,并将在Rails 7.2中移除。现有项目可以继续使用`config/secrets.yml`,只需在`config/application.rb`中添加`config.secrets = config_for(:secrets)`,并将`Rails.application.secrets`替换为`Rails.configuration.secrets`。此外,`secrets:setup`命令被移除,`secrets:edit`和`secrets:show`命令被弃用。

🎯

关键要点

  • 在Rails 7.1中,`Rails.application.secrets`被弃用,建议使用`Rails.application.credentials`。
  • `Rails.application.secrets`将在Rails 7.2中移除。
  • 现有项目可以继续使用`config/secrets.yml`,只需在`config/application.rb`中添加`config.secrets = config_for(:secrets)`。
  • 需要将`Rails.application.secrets`替换为`Rails.configuration.secrets`。
  • Rails 7.1移除了`secrets:setup`命令,并弃用了`secrets:edit`和`secrets:show`命令。

延伸问答

Rails 7.1中`Rails.application.secrets`的变化是什么?

`Rails.application.secrets`在Rails 7.1中被弃用,建议使用`Rails.application.credentials`。

如何在Rails 7.2中继续使用`Rails.application.secrets`?

可以在`config/application.rb`中添加`config.secrets = config_for(:secrets)`,并将`Rails.application.secrets`替换为`Rails.configuration.secrets`。

Rails 7.1中有哪些命令被移除或弃用?

Rails 7.1移除了`secrets:setup`命令,并弃用了`secrets:edit`和`secrets:show`命令。

如何将`config/secrets.yml`的内容迁移到`config/credentials/production.yml.enc`?

可以使用命令`EDITOR=vim rails credentials:edit --environment production`将内容迁移。

在Rails中如何访问配置的秘密?

可以通过`Rails.configuration.secrets.dig(:my_config, :my_var)`来访问配置的秘密。

为什么要从`Rails.application.secrets`切换到`Rails.application.credentials`?

因为`Rails.application.secrets`在Rails 7.2中将被移除,使用`Rails.application.credentials`是推荐的做法。

➡️

继续阅读