我需要你指导红宝石的环境保护。
================================================
我有一些代码可以转换设备整数=>设备名的版本。在我的代码中,路径:
Config-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’。我想使用环境变量来添加它,而不是使用硬代码。我该怎么做呢?这有可能吗?我该把它放在哪里?
打招呼。阿斯特恩
发布于 2014-04-14 06:26:29
使用Rails 4.1,您可以使用secrets.yml,查看此链接
如果您有较早的版本,请尝试菲加罗宝石
发布于 2014-04-14 06:45:17
是什么阻止您使用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' ]
}发布于 2014-04-14 06:54:32
您必须记住,ENV vars仍然是变量,这意味着您可以以类似的方式使用它们。我建议使用类似于Rails 4.1中的新secrets.yml的东西,或者像配置斯巴达这样的东西来创建您需要的数据的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
endhttps://stackoverflow.com/questions/23053119
复制相似问题