3

有人知道如何在production.rb使用 new时设置 ENV 变量secrets.yml吗?

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

生产.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";

秘密.yml:

production:
  some_stuff:
    key: abcdefg
    secret_key: 123456789123456789
4

2 回答 2

4

我还没有找到任何关于嵌套的信息,就像你对some_stuff. 发行说明和所有其他博客文章仅使用平面键作为示例:

development:
  secret_key_base: 3b7cd727ee24e8444053437c36cc66c3
  some_api_key: SOMEKEY

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

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

于 2014-05-20T19:58:56.450 回答
2

要获得像您这样的嵌套值,您需要使用此语法。

Rails.application.secrets.some_stuff[:secret_key]
于 2018-02-05T15:45:09.737 回答