我的团队正在维护Rails应用程序。之前的开发人员决定将一些配置变量(如facebook app id,twitter app id)作为env变量。但这不是很多才多艺。如果我们有两个应用程序(测试和生产),我们只能使用一个硬编码配置(或手动更改)。最好将这些变量放在版本控制中。
这是正确的方法吗?如果没有,那么正确的方法是什么?
答案 0 :(得分:1)
我们在2个应用中使用以下解决方案。
将配置变量存储在https://github.com/railsjedi/rails_config gem的yml文件中。
应用程序配置为通过初始化程序在生产和开发模式下使用不同的yml文件。
在生产服务器目录中,yml文件与2个应用程序进行符号链接。
capistrano的任务看起来如此:
namespace :settings do
task :symlink, roles: :app do
run "ln -s /path_to_settings/#{rail_env} #{current_path}/config/settings"
end
end
after "deploy:create_symlink", "settings:symlink"