如何通过环境变量添加记录?

时间:2014-04-14 06:13:00

标签: android ruby-on-rails ruby variables environment

我需要你对红宝石环境变量的指导。

=============================================== =

我有一些转换设备版本的代码intedtifier =>设备名称.. 在我的代码中, 路径:

  

配置-initilizer-android.rb

module Android
  @conversion_table_of_model_id_and_device_name = {
    'Anroid2,3'   => 'Gingerbread',
    'Android3,0'   => 'Honeycomb',
    'Android4,1'   => 'ICS',
    'Android4,2'   => 'JB',
}

将来,如果有另一个名称的android例如。' KitKat'。我想使用环境变量添加它而不使用硬代码。 我怎么能这样做?有可能吗? 我应该把它放在哪里?

问候。 agstwn

3 个答案:

答案 0 :(得分:1)

使用Rails 4.1,您可以使用secrets.yml,查看this link

如果您有早期版本,请尝试figaro gem

答案 1 :(得分:1)

是什么阻止您使用ENV常量?

module Android
  @conversion_table_of_model_id_and_device_name = {
    'Anroid2,3'   => 'Gingerbread',
    'Android3,0'   => 'Honeycomb',
    'Android4,1'   => 'ICS',
    'Android4,2'   => 'JB',
    'Android4,3'   => ENV[ 'ANDROID_OS_NAME' ]
}

答案 2 :(得分:0)

您必须记住,ENV变量仍然是变量,这意味着您可以以类似的方式使用它们。我建议使用类似the new secrets.yml in Rails 4.1之类的内容,或类似config spartan之类的内容来创建所需数据的yml结构:

#config/secrets.yml
development:
  android:
    2.3: "gingerbread"
    3.0: "Honeycomb"
    4.1: "ICS"
    4.2: "JB"
    4.4: "KK"


module Android
    @conversion_table_of_model_id_and_device_name
    me = {}
    Rails.application.secrets.android.each do |k,v|
        me[k.to_sym] = v
    end
end