2012-09-21 70 views
1

在我的Web應用程序中,我想訪問我的初始化器文件中的環境變量。 我intiailizer文件看起來像(初始化/ gcm_on_rails.rb)初始化器內的訪問環境變量Ruby on Rails

configatron.gcm_on_rails.api_url = 'https://android.googleapis.com/gcm/send' 

#configatron.gcm_on_rails.api_key = 'abc' 

configatron.gcm_on_rails.api_key == ENV['GCM_API_KEY'] 

Rails.logger.debug"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ #{configatron.gcm_on_rails.api_key}" 

configatron.gcm_on_rails.app_name = 'com.xyz' 

configatron.gcm_on_rails.delivery_format = 'json' 

,並在我的.bashrc文件,我添加以下

export GCM_API_KEY="abc" 

,但我的記錄沒有給我任何值的鍵值。這意味着我無法訪問這些環境變量。我想訪問這些變量。需要幫助...謝謝.....

+0

你已經在第三行中使用 「==」,你指定ENV [ 'GCM_API_KEY']到configatron.gcm_on_rails.api_key? – Mohanraj

+0

@Mohanraj感謝您的重播。我想將configatron.gcm_on_rails.api_key設置爲GCM_API_KEY,它被設置在.bashrc文件(即環境變量)中。任何解決方案。 – nilkash

+0

嗨,您的信息。 Rails根據版本從(〜/ .rvm/environments /)加載ENV。我已經檢查過,當我在上面的目錄下添加一些變量到默認的env文件時,它會反映在irb上,但它不會在rails控制檯中加載。 – Mohanraj

回答

0

如果您在/ etc/bashrc或/ etc/profile中設置了環境變量,那麼這些環境變量將在您的shell中可用。然而,在大多數操作系統中,Apache不是從shell啓動的,也不會加載在bashrc/profile中定義的環境變量,這就是爲什麼在/ etc/bashrc和/ etc/profile中設置環境變量通常不會影響Apache(和通過歸納,乘客和鐵路過程)。

參考: - http://blog.phusion.nl/2008/12/16/passing-environment-variables-to-ruby-from-phusion-passenger/

+0

我試過你的解決方案。我使用'GCM_API_KEY',但它給了我錯誤「未初始化的常量GCM_API_KEY」我在.bashrc文件中聲明瞭這些變量,但仍然無法訪問這些值..任何其他解決方案... – nilkash

相關問題