我有一个初始化文件,如下所示:
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时会收到“Missing client_id参数”的响应。
{
"error": {
"message": "Missing client_id parameter.",
"type": "OAuthException"
}
}
我很困惑。
这不是访问环境变量的正确方法吗?它在初始化器中是否有另一种作用?
如何从初始化程序访问环境变量?
BTW我正在使用Ubuntu 11.04。
由于
答案 0 :(得分:0)
关于在块中的内容会覆盖ENV和env。这是omniauth建议的方式: