2013-06-03 26 views
2

我看到這個Capistrano: Can I set an environment variable for the whole cap session?Capistrano的環境變量

,我使用這個設置我的變量

set :default_environment, self[:default_environment]. 
    merge('PAYPAL_SANDBOX' => 'true') 

我打印self[:default_environment],我得到PAYPAL_SANDBOX正確設置

但是,我怎麼能測試,如果rails服務器正在運行該變量集?,我認爲是行不通的,因爲在另一部分我有

ENV['PAYPAL_SANDBOX'] ? 'development' : Rails.env 

,我進入了這句話的第二部分,我的意思是採取Rails.env代替development

回答

2

我解決了它這樣的:

  1. 我創造了我的服務器中的文件,只是爲了紀念它

    touch test_server 
    
  2. 內的初始化

    TEST_SERVER = `ls ~/test_server`.present? 
    
  3. 然後,

    TEST_SERVER ? 'development' : Rails.env 
    
+0

不會在我的使用情況下工作,但我認爲它會在一般情況下工作。 – codenoob

0

我的解決辦法是這樣的:

  1. 設置全局變量

    set :my_number, 23

  2. 獲取全局變量

    puts "My number is #{fetch(:my_number)}"