Capistrano环境变量

时间:2013-06-03 03:26:00

标签: ruby-on-rails capistrano

我看到了Capistrano: Can I set an environment variable for the whole cap session?

我正在使用它来设置我的变量

  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 个答案:

答案 0 :(得分:2)

我解决了这个问题:

  1. 我在服务器内创建了一个文件,只是为了标记它

    touch test_server
    
  2. 在初始化程序中

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

    TEST_SERVER ? 'development' : Rails.env
    

答案 1 :(得分:0)

我的解决方案是这样的:

  1. 设置全局变量

    set :my_number, 23

  2. 获取全局变量

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