【问题标题】:Can't access environment variable from Rails 3.1 initializer无法从 Rails 3.1 初始化程序访问环境变量
【发布时间】:2011-09-15 20:11:44
【问题描述】:

我有一个如下所示的初始化文件:

  Rails.application.config.middleware.use OmniAuth::Builder do  
    provider :facebook, '000000000000000', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
  end

我的应用程序可以正常工作。

我不想硬编码凭据,所以我将其更改为:

  Rails.application.config.middleware.use OmniAuth::Builder do  
    provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET']
  end

我在bash中设置了相应的环境变量,然后重启了我的应用。

当我使用 rails 控制台时,ENV['FACEBOOK_KEY'] 和 ENV['FACEBOOK_SECRET'] 输出正确的值。

但是我的应用程序不再工作了,我在使用omniauth 时收到“缺少client_id 参数”的响应。

{
   "error": {
      "message": "Missing client_id parameter.",
      "type": "OAuthException"
   }
}

我很困惑。

这不是访问环境变量的正确方法吗?它在初始化程序中是否以另一种方式工作?

如何从初始化程序访问环境变量?

顺便说一句,我使用的是 Ubuntu 11.04。

谢谢

【问题讨论】:

    标签: ruby-on-rails-3 oauth environment-variables ruby-on-rails-3.1 omniauth


    【解决方案1】:

    在块内的某些东西会覆盖 ENV 和 env。这是omniauth建议的方式:

    https://github.com/intridea/omniauth/wiki/Dynamic-Providers

    【讨论】:

      猜你喜欢
      • 2012-09-13
      • 2016-12-26
      • 2021-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-29
      • 1970-01-01
      • 2019-02-15
      相关资源
      最近更新 更多