【问题标题】:ERP seems not being interpreted in database.yml and secrets.ymlERP 似乎没有在 database.yml 和 secrets.yml 中解释
【发布时间】:2015-10-04 13:59:09
【问题描述】:

我的 rails-app 似乎无法解释这些行

password: <%= ENV['MYAPP_DATABASE_PASSWORD'] %>

database.yml

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

secrets.yml 中。

当我将这两个值直接粘贴到这些文件中时,我的应用就可以工作了。

通过 rails 控制台我确定了

ENV['MYAPP_DATABASE_PASSWORD']
ENV["SECRET_KEY_BASE"]

具有有效值。

根据 Rails 文档,rails 会解析这些文件中的 ERB。

这对我来说似乎是一个错误,因为这都是由 rails 生成的代码。我使用的是 Rails 4.2.1,所以 ERB 应该在那些文件中工作。

我喜欢这种方法,有人知道如何在这些文件中激活 ERB 吗?

【问题讨论】:

  • 很好奇,你不应该激活它。添加这些 ENV 变量后,您是否重新启动了您的 Rails 应用程序?
  • 我什至重新启动了整个系统。
  • 你在哪里设置/你设置环境变量了吗?

标签: ruby-on-rails ruby ruby-on-rails-4 environment-variables yaml


【解决方案1】:

好的,解决了。

rails console env 从 shell 获取环境变量,但 nginx/passenger 没有。这就是为什么它只在控制台中对我有用。

你已经在你的 nginx-server 的站点配置中设置了 ENV-vars:

passenger_env_var MYAPP_DATABASE_PASSWORD <db_password>;
passenger_env_var SECRET_KEY_BASE  <secret_key>;

就是这样!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-26
    • 2012-01-10
    • 2020-05-28
    • 2016-02-11
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多