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

问题描述 投票:2回答:2

有人知道如何使用新的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
ruby-on-rails ruby-on-rails-4 yaml secret-key
2个回答
4
投票

我没有找到任何关于嵌套的信息,就像你使用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上启用点语法”)


1
投票

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

Rails.application.secrets.some_stuff[:secret_key]
© www.soinside.com 2019 - 2024. All rights reserved.