.bashrc中的环境变量未设置

时间:2013-06-28 21:20:02

标签: ruby-on-rails omniauth

我正在使用带有Devise(用于身份验证)的Rails应用程序和远程服务器上的omniauth gem。当我以前部署到Heroku时,我可以在终端中设置环境变量,但是我在使用的远程服务器上没有提供。因此,我将以下内容添加到.bashrc

的底部
export TWITTER_KEY="LxAuQ1Chmas;dlfkjdsal;fjds" TWITTER_SECRET="CC2XpLOeMJbvYphlafsdlkfjdsalkfj"

希望能设置Devise.rb文件中配置的环境变量

 config.omniauth :twitter, ENV["TWITTER_KEY"], ENV["TWITTER_SECRET"]

然而,当我尝试使用Twitter登录时,我正在接受这个

OAuth::Unauthorized (401 Unauthorized):
  oauth (0.4.7) lib/oauth/consumer.rb:216:in `token_request'
  oauth (0.4.7) lib/oauth/consumer.rb:136:in `get_request_token'
  omniauth-oauth (1.0.1) lib/omniauth/strategies/oauth.rb:29:in `request_phase'
  omniauth-twitter (1.0.0) lib/omniauth/strategies/twitter.rb:63:in `request_phase'
  omniauth (1.1.4) lib/omniauth/strategy.rb:214:in `request_call'

所以我假设环境变量没有被正确读取。你能解释一下我设置它们的另一种方式吗?

1 个答案:

答案 0 :(得分:1)

我建议使用figaro gem管理环境变量。

将环境变量放在yaml配置文件中,它们将在ENV中提供。

它还提供了一个有用的rake任务来设置Heroku上的变量。

相关问题