Rails:无法使用新的`config / secrets.yml`

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails:无法使用新的`config / secrets.yml`相关的知识,希望对你有一定的参考价值。

有人知道如何使用新的production.rbsecrets.yml中设置ENV变量吗?

我得到以下key: wrong number of arguments (0 for 1)

production.rb:

# DOES NOT WORK

ENV["SOME_STUFF_KEY"] = Rails.application.secrets.some_stuff.key
ENV["SOME_STUFF_SECRET_KEY"] = Rails.application.secrets.some_stuff.secret_key

# NOTE THAT THIS WORKS:

# ENV["SOME_STUFF_KEY"] = "abcdefg";
# ENV["SOME_STUFF_SECRET_KEY"] = "123456789123456789";

secrets.yml:

production:
  some_stuff:
    key: abcdefg
    secret_key: 123456789123456789
答案

我没有找到任何关于嵌套的信息,就像你使用some_stuff一样。 release notes和所有其他博客文章只使用平键作为示例:

development:
  secret_key_base: 3b7cd727ee24e8444053437c36cc66c3
  some_api_key: SOMEKEY

Rails.application.secrets.some_api_key在开发环境中返回SOMEKEY。

这就是为什么有人创建了dot_secrets gem(“在嵌套的Rails.application.secrets上启用点语法”)

另一答案

要获得与您类似的嵌套值,您需要使用此语法。

Rails.application.secrets.some_stuff[:secret_key]

以上是关于Rails:无法使用新的`config / secrets.yml`的主要内容,如果未能解决你的问题,请参考以下文章

给定会话密钥和秘密,我们如何解密 Rails cookie?

为啥 Rails 无法启动并显示“预期在 `app/assets/config/manifest.js` (Sprockets::Railtie::ManifestNeededError) 中找到清单

无法从 react-admin 访问由 rails 开发的 API

无法创建新的rails项目

#=升级到Rails 5后无法正常工作

在创建新的 Rails 应用程序时