【问题标题】:using figaro to store env variables使用 figaro 存储环境变量
【发布时间】:2015-07-08 03:46:17
【问题描述】:

我对如何在 Rails 4.2 中正确使用 figaro 感到困惑。所以在 application.yml (检查到 .gitignore)中,我有这个:

secret_key_base: 123456

然后在 secrets.yml 中,我有这个:

development:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

根据我阅读的所有内容,gem 应该处理设置凭据的 ENV 部分。为什么这不起作用?



编辑 1: 在 application.yml 我有:mandrill_user_name: email@example.commandrill_password: 1234567890

在 development.rb 我有:

config.action_mailer.default_url_options = { :host => "localhost:3000" }

config.action_mailer.smtp_settings = {
  address: "smtp.mandrillapp.com",
  port: 587,
  domain: "localhost:3000",
  authentication: "plain",
  enable_starttls_auto: true,
  user_name: ENV["mandrill_user_name"],
  password: ENV["mandrill_password"]
}

application.yml 不应该处理这个吗?

【问题讨论】:

    标签: ruby-on-rails actionmailer


    【解决方案1】:

    如果在 secrets.yml 文件和 application.yml 文件中有变量是多余的。 即仅使用 application.yml 文件来声明 ENV Vars。

    只要它在 allication.yml 文件中,您就可以像您正在做的那样在整个 Rails 应用程序中调用它:

    ENV["SECRET_KEY_BASE"]
    

    secrets.yml 文件中存储的变量通过以下方式调用

    Rails.application.secrets.SECRET_KEY_BASE
    

    【讨论】:

    • 对不起,我很困惑。它不起作用,所以我认为我做错了什么。我在 application.yml 中有secret_key_base: 123456,然后我在 development.rb 中用ENV["secret_key_base"] 调用它。没发生什么事。另外,如果使用 secrets.yml 是多余的,为什么这个答案另有说明?:stackoverflow.com/a/26569119/2009652
    • 什么都没有发生?
    • 你能把你的 development.rb 动作邮件配置代码添加到你的帖子中
    • 1) figaro 在您的 Gemfile 中吗? 2)你重启春天了吗? 3)您在更新您的 application.yml 文件后是否重新启动了您的网络服务器? ——
    • 1) spring 自动加载环境,以便您可以更快地执行任务(bin/rake、bin/rails)。 2)文件变得相对毫无价值,只需将其保留在创建项目时生成的方式,否则在提交到heroku时会遇到错误 3)最好不要将它们存储在存储库中 4)如果这解决了你的问题问题标记答案正确
    猜你喜欢
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 2015-08-05
    • 2016-01-27
    • 2019-01-15
    • 2015-03-27
    • 2014-04-03
    • 1970-01-01
    相关资源
    最近更新 更多