Secrets.yml 未在 rails 中加载

Secrets.yml is not loading in rails

我本地有一些数据secrets.yml。现在我又添加了 2 个秘密, 但在 rails 控制台中,这些秘密不会出现。 即使我在 secrets.yml 中编辑旧密钥,然后再次打开控制台,但仍然无法查看更新后的数据。 这意味着 secrets.yml 没有正确加载。

我尝试执行 bin/spring stop 但没有成功。

是不是因为,secrets.yml在gitignore里?

我也尝试从应用程序中删除 secrets.yml。然后再次打开 rails 控制台。 我仍然可以看到旧的秘密。 我在 netbeans 编辑器中手动更改了 secrets.yml。

我执行了Rails.application.secrets.api_key 我能看到它。然后使用 netbeans,我又添加了 1 个密钥,即 secret_key 但我无法使用 Rails.application.secrets.secret_key

在 rails 控制台中访问它

我多次重新打开终端,但没有成功。

我的Rails版本是5.1.4

在 Rails 5.1 之后,您无法手动更新 secrets.yml。您需要先对其进行解密、编辑,然后再次加密。最安全的方法是在控制台中执行这些命令。

首先你需要在你的控制台中运行这个命令。我不确定它是否可以被 netbeans 使用,所以我将为 vim 编辑器编写手册,每个控制台都可以处理。

EDITOR="vim" bin/rails secrets:edit

在这里你需要非常小心,因为大多数开发者都很难使用 vim 编辑器。

  1. 按 i 键

  2. 进行更改

  3. 按退出键

  4. 然后按“:”按钮并输入 wq(它应该看起来像这样:wq)并按回车键

  5. 您将在您的控制台中看到这样的消息File encrypted and saved.
  6. 您可以通过再次输入 EDITOR="vim" bin/rails secrets:edit 来检查您的 secrets.yml 以确保所有内容都已正确更新

Changing secrets.yml in rails 5.1+

我刚刚重新启动了我的电脑,再次打开终端,它工作了。 奇怪,我不明白这个问题,但它有效