我需要你对红宝石环境变量的指导。
=============================================== =
我有一些转换设备版本的代码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
答案 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