Rails:无法使用新的`config / secrets.yml`
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails:无法使用新的`config / secrets.yml`相关的知识,希望对你有一定的参考价值。
有人知道如何使用新的production.rb
在secrets.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) 中找到清单