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

时间:2014-05-20 19:49:36

标签: ruby-on-rails ruby-on-rails-4 yaml secret-key

有人知道如何使用新的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

2 个答案:

答案 0 :(得分: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 :(得分:1)

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

Rails.application.secrets.some_stuff[:secret_key]